PasteboardPutItemFlavor Null 传递给需要非空参数的被调用方
PasteboardPutItemFlavor Null passed to a callee that requires a non-null argument
我知道有很多问题询问如何解决 "Null passed to a callee that requires a non-null argument",但我似乎真的找不到解决问题的方法。
我在我的代码中使用了一个名为 PasteboardPutItemFlavor 的函数。如果我将部署目标设置为针对 macSDK10.12 构建的 10.12,它可以正常编译。在我将部署目标设置为 10.8 后,但仍然针对 macSDK10.12 进行编译,我在调用 PasteboardPutItemFlavor 时遇到错误。错误消息是 "Null passed to a callee that requires a non-null argument"。这个错误是什么意思? 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);
我查看了 10.12 SDK 的头文件。头文件被非空宏扭曲。因此,任何带有该宏的指针都将被声明为非空。在我的例子中是 nullptr 参数。我只是创建一个局部变量并将其设置为 0,然后将其传递给 PasteboardPutItemFlavor。这解决了错误。
我知道有很多问题询问如何解决 "Null passed to a callee that requires a non-null argument",但我似乎真的找不到解决问题的方法。
我在我的代码中使用了一个名为 PasteboardPutItemFlavor 的函数。如果我将部署目标设置为针对 macSDK10.12 构建的 10.12,它可以正常编译。在我将部署目标设置为 10.8 后,但仍然针对 macSDK10.12 进行编译,我在调用 PasteboardPutItemFlavor 时遇到错误。错误消息是 "Null passed to a callee that requires a non-null argument"。这个错误是什么意思? 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);
我查看了 10.12 SDK 的头文件。头文件被非空宏扭曲。因此,任何带有该宏的指针都将被声明为非空。在我的例子中是 nullptr 参数。我只是创建一个局部变量并将其设置为 0,然后将其传递给 PasteboardPutItemFlavor。这解决了错误。