macos - Null 传递给需要非空参数的被调用者

标签 macos cocoa nsdata ciimage

多年来我一直用它来将 CIImage 转换为 NSData:

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

现在在 El Capitan 上,我在第二行遇到此错误:

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

我可以通过在属性上使用空数组来解决这个问题,如下所示:

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

但我怀疑这会在将来给我带来问题。

这是解决这个问题的正确方法吗?

最佳答案

Is this the correct way to solve this problem?

是的。

API 中似乎有一些地方接受 nil 值而不是空集合,即使它没有被记录为有效。 Apple 为了更好地支持与 Swift 的交互而添加的非零注释只是强调了这些。

关于macos - Null 传递给需要非空参数的被调用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34557563/

相关文章:

iphone - 在 Objective-C 中确定属性是否为 int、float、double、NSString、NSDate、NSNumber 等

swift - 使用 Swift 从 NSData 中获取数据

ios - 如何使用 AFNetworking 通过 Post 请求在服务器上发送 NSData?

iphone - Objective-C 将 NSData 转换为 NSString

swift - Q : Getting a File's MD5 Checksum in Swift

c++ - OpenGL 纹理不会映射 - 白色方 block ?

ios - 钛开发者 : iPhone SDK "loading" never finishes on mobile SDK 1. 6.2 和 1.7.0 RC1

objective-c - 如何设置 NSButtonCell 文本标签的颜色

swift - 如何以编程方式使 NSSlider 垂直?

ios - CocoaPods 找不到 pod 的兼容版本 "GoogleDataTransportCCTSupport"