Estoy tratando de hacer uso de -[NSObject autoContentAccessingProxy]
como se describe en http://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/autoContentAccessingProxy.¿Funciona [NSObject autoContentAccessingProxy] en absoluto?
El objeto que intento representar implementa el protocolo NSDiscardableContent
y -autoContentAccessingProxy
devuelve un valor que no es nulo.
Si, sin embargo, intento enviar un mensaje al proxy, siempre obtengo un NSInvalidArgumentException
con un motivo de "*** - [NSProxy methodSignatureForSelector:] llamado!".
Entiendo que si estuviera escribiendo mi propia clase basada en NSProxy
, tendría que implementar el método -methodSignatureForSelector:
, pero en este caso, no estoy escribiendo el proxy, solo trato de usar el proxy proporcionado por el método documentado . Por lo que vale, puedo ver que el proxy es realmente del tipo NSAutoContentAccessingProxy
, por lo que cabría esperar que esa clase tuviera una implementación para -methodSignatureForSelector:
.
Aquí hay un pequeño bloque de código que utiliza una instancia de NSPurgeableData en lugar de mi clase personalizada. Este pequeño bloque tiene exactamente el mismo problema.
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];
¿Tengo algún malentendido del método -autoContentAccessingProxy
aquí, o es sólo roto por completo?
Guau, buena manera de demostrar que está roto. ¡Prestigio! –