Search code examples
macoscocoansdataciimage

Null passed to a callee that requires a non-null argument


I have been using this to convert a CIImage to NSData for ages:

  NSData *data = [imageRep representationUsingType: NSPNGFileType
                            properties:nil];

Now on El Capitan I have this error on the second line:

Null passed to a callee that requires a non-null argument

I can solve that by using an empty array on the properties, like this:

NSData *data = [imageRep representationUsingType: NSPNGFileType
                                      properties: @{}];

but I am suspecting that this can cause me problems in the future.

Is this the correct way to solve this problem?


Solution

  • Is this the correct way to solve this problem?

    Yes.

    There appear to be a few places in the API which accepted nil values rather than an empty collection even though it was not documented as valid. The non-nil annotations added by Apple to better support inter-working with Swift are just highlighting these.