2016-10-25 2 views
0

"null이 아닌 인수가 필요한 호출 수신자에게 전달 된 Null"을 해결하는 방법에 대해 묻는 질문이 많이 있지만 실제로는 알 수 없습니다. 내 문제에 대한 해결책을 찾는다.PasteboardPutItemFlavor null이 아닌 인수가 필요한 호출 수신자에게 null이 전달됨

코드에서 PasteboardPutItemFlavor라는 함수를 사용합니다. 배포 대상을 macSDK10.12에 대해 구축 된 10.12로 설정하면 컴파일됩니다. 배포 대상을 10.8로 설정했지만 macSDK10.12와 비교하여 컴파일하면 PasteboardPutItemFlavor 호출에서 오류가 발생합니다. 오류 메시지는 "null이 아닌 인수가 필요한 호출 수신자에게 Null이 전달되었습니다"입니다. 이 오류는 무엇을 의미합니까? kPasteboardFlavorNoFlags가 0으로 정의되면 다른 상수 값으로 변경해도 아무 것도 변경되지 않습니다.

배포 대상으로 10.8에서이 오류를 어떻게 해결하고 10.12에 대해 컴파일합니까?

PasteboardPutItemFlavor(
      m_pboard, 
      nullptr, 
      flavorType, 
      dataRef, 
      kPasteboardFlavorNoFlags); 

함수 선언은 내가 10.12 SDK에서 헤더 파일에보고

OSStatus PasteboardPutItemFlavor(PasteboardRef inPasteboard, PasteboardItemID inItem, CFStringRef inFlavorType, CFDataRef inData, PasteboardFlavorFlags inFlags); 

답변

1

입니다. 헤더 파일은 nonnull 매크로로 왜곡됩니다. 그래서 그 매크로를 가진 포인터는 널이 아닌 것으로 선언 될 것입니다. 내 경우에는 nullptr 매개 변수가 있습니다. 간단히 로컬 변수를 만들고 0으로 설정 한 다음 PasteboardPutItemFlavor에 전달합니다. 그것은 오류를 해결합니다.

관련 문제