"Selector no reconocido" al intentar acceder a la salida de CIFilterImage

Estoy experimentando con Core Image (en OS X, 10.7.3) por primera vez y me encuentro con una pared de ladrillos. Estoy seguro de que esto es algo tonto que estoy haciendo y solo necesito que alguien más familiarizado con el marco me lo señale.

onsidere el siguiente código (estipulemos queimageURL es una URL de archivo válida que apunta a un JPG en el disco):

CIImage *inputImage = [CIImage imageWithContentsOfURL:imageURL];
CIFilter *filter = [CIFilter filterWithName:@"CIAreaAverage" keysAndValues:
                                                  kCIInputImageKey, inputImage,
                                                  kCIInputExtentKey, [inputImage valueForKey:@"extent"],
                                                  nil];
CIImage *outputImage = (CIImage *)[filter valueForKey:@"outputImage"];

Al ejecutar este código, la última línea se dispara:

0   CoreFoundation                      0x00007fff96c2efc6 __exceptionPreprocess + 198
1   libobjc.A.dylib                     0x00007fff9153cd5e objc_exception_throw + 43
2   CoreFoundation                      0x00007fff96cbb2ae -[NSObject doesNotRecognizeSelector:] + 190
3   CoreFoundation                      0x00007fff96c1be73 ___forwarding___ + 371
4   CoreFoundation                      0x00007fff96c1bc88 _CF_forwarding_prep_0 + 232
5   CoreImage                           0x00007fff8f03c38d -[CIAreaAverage outputImage] + 52
6   Foundation                          0x00007fff991d8384 _NSGetUsingKeyValueGetter + 62
7   Foundation                          0x00007fff991d8339 -[NSObject(NSKeyValueCoding) valueForKey:] + 392

Ahora, la Referencia del filtro de imagen principal establece claramente que CIAreaAverage "Devuelve una imagen de un solo píxel que contiene el color promedio de la región de interés". De hecho, aún más desconcertante, cuando examino los atributos del filtro en el depurador (antes de probar elvalueForKey: llamada)

(lldb) po [filter attributes]
(id) $3 = 0x00007fb3e3ef0e00 {
    CIAttributeDescription = "Calculates the average color for the specified area in an image, returning the result in a pixel.";
    CIAttributeFilterCategories =     (
        CICategoryReduction,
        CICategoryVideo,
        CICategoryStillImage,
        CICategoryBuiltIn
    );
    CIAttributeFilterDisplayName = "Area Average";
    CIAttributeFilterName = CIAreaAverage;
    CIAttributeReferenceDocumentation = "http://developer.apple.com/cgi-bin/apple_ref.cgi?apple_ref=//apple_ref/,doc/filter/ci/CIAreaAverage";
    inputExtent =     {
        CIAttributeClass = CIVector;
        CIAttributeDefault = "[0 0 640 80]";
        CIAttributeDescription = "A rectangle that specifies the subregion of the image that you want to process.";
        CIAttributeDisplayName = Extent;
        CIAttributeType = CIAttributeTypeRectangle;
        CIUIParameterSet = CIUISetBasic;
    };
    inputImage =     {
        CIAttributeClass = CIImage;
        CIAttributeDescription = "The image to process.";
        CIAttributeDisplayName = Image;
        CIUIParameterSet = CIUISetBasic;
    };
    outputImage =     {
        CIAttributeClass = CIImage;
    };
}

HayoutputImage allí mismo: se proporciona como tipo CIImage!

Entonces, ¿qué estoy haciendo mal? Todos los documentos y tutoriales que he visto indican que-valueForKey: es la forma correcta de acceder a los atributos, incluidooutputImage.

Respuestas a la pregunta(4)

Su respuesta a la pregunta