使用id代替NSString

2 iphone objective-c

我正在解析一些JSON.

有时JSON返回一个NSNull,我允许进入一个字符串,然后我会检查字符串,看它是否与NSNull有关,然后处理它.代码按预期工作,但编译器抱怨警告.

if ((theMonograph.cautions != nil) && (theMonograph.cautions != [NSNull null]))
{   
    //draw string
}
Run Code Online (Sandbox Code Playgroud)

在Monograph.h中

NSString *cautions;
@property (nonatomic, retain) NSString *cautions;
Run Code Online (Sandbox Code Playgroud)

所以我可能正确处理它的方法是更改​​为NSString位置的id

Monograph.h

id *cautions;
@property (nonatomic, retain) id *cautions;
Run Code Online (Sandbox Code Playgroud)

但这仍然引发了另一个警告

从不兼容的指针类型传递'setCautions:'的参数1

处理这个问题的正确方法是什么?我猜测让NSNull进入一个NSString对象是错误的.但是将id对象放在其位置似乎并不正确.

非常感谢-Code

Abi*_*ern 5

一个id已经被声明为一个指针,NSObject所以摆脱星号:

id cautions;
@propertry (nonatomic, retain) id cautions;
Run Code Online (Sandbox Code Playgroud)