Работает ли - [NSObject autoContentAccessingProxy] вообще?

Я пытаюсь использовать - [NSObject autoContentAccessingProxy] , как описано на http : //developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/autoContentAccessingProxy .

Объект, который я пытаюсь проксировать, реализует протокол NSDiscardableContent и -autoContentAccessingProxy успешно возвращает ненулевое значение.

Однако, если я пытаюсь отправить сообщение прокси, я всегда получаю NSInvalidArgumentException с причиной «*** - [NSProxy methodSignatureForSelector:] called!».

Я понимаю, что если бы я писал свой собственный класс на основе NSProxy , мне бы пришлось реализовать метод -methodSignatureForSelector: , но в этом случае я не пишу прокси, просто пытаясь использовать прокси, предоставленный документированным методом. Как бы то ни было, я вижу, что прокси на самом деле имеет тип NSAutoContentAccessingProxy , поэтому я ожидал, что этот класс действительно будет иметь реализацию для -methodSignatureForSelector: .

Вот небольшой блок кода, использующий экземпляр NSPurgeableData вместо моего настраиваемого класса. У этого маленького блока точно такая же проблема.

NSPurgeableData * data = [NSPurgeableData dataWithBytes:"123" length:3];
NSLog(@"data.length = %u", data.length);
id proxyData = [data autoContentAccessingProxy];
NSLog(@"proxyData.length = %u", [proxyData length]);    //  throws NSInvalidArgumentException!
[data endContentAccess];
[data release];

Могу ли я неправильно понять метод -autoContentAccessingProxy , или он просто полностью сломан?

7
задан GBegen 7 February 2012 в 20:05
поделиться