我知道有很多问题询问如何解决" Null传递给需要非空参数的被调用者"但我真的无法为我找到解决方案问题
我在我的代码中使用了一个名为PasteboardPutItemFlavor的函数。如果我将部署目标设置为针对macSDK10.12构建的10.12,则编译正常。在我将部署目标设置为10.8但仍然针对macSDK10.12进行编译后,我在PasteboardPutItemFlavor调用时出错。错误消息是" Null传递给需要非空参数的被调用者"。这个错误是什么意思? kPasteboardFlavorNoFlags定义为0,更改为其他常量值不会改变任何内容。
如何使用10.8作为部署目标解决此错误并针对10.12进行编译?
PasteboardPutItemFlavor(
m_pboard,
nullptr,
flavorType,
dataRef,
kPasteboardFlavorNoFlags);
函数声明是
OSStatus PasteboardPutItemFlavor(PasteboardRef inPasteboard, PasteboardItemID inItem, CFStringRef inFlavorType, CFDataRef inData, PasteboardFlavorFlags inFlags);
答案 0 :(得分:1)
我查看了10.12 SDK中的头文件。头文件使用非空宏进行扭曲。因此任何具有该宏的指针都将被声明为非空。在我的例子中是nullptr参数。我只是创建一个局部变量并设置为0然后在PasteboardPutItemFlavor中传递它。这解决了错误。