【问题标题】:PasteboardPutItemFlavor Null passed to a callee that requires a non-null argumentPasteboardPutItemFlavor Null 传递给需要非空参数的被调用者
【发布时间】:2016-10-25 16:07:45
【问题描述】:

我知道有很多问题询问如何解决“Null 传递给需要非 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);

【问题讨论】:

    标签: xcode macos clipboard macos-carbon


    【解决方案1】:

    我查看了 10.12 SDK 的头文件。头文件被非空宏扭曲。因此,任何带有该宏的指针都将被声明为非空。在我的例子中是 nullptr 参数。我只需创建一个局部变量并将其设置为 0,然后将其传递给 PasteboardPutItemFlavor。这样就解决了错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 2016-12-16
      • 2015-12-04
      • 2022-12-12
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      相关资源
      最近更新 更多