我正在为我将从 Web 服务接收的 json 数据创建一个模型,并声明属性以表示来自 json 数组的数组成员,我在 objective-c 中声明了几个属性
@property (nonatomic, strong) NSString *id;
@property (nonatomic, strong) NSString *channel;
@property (nonatomic, strong) NSString *description;
@property (nonatomic, strong) NSURL *urlPrefix;
@property (nonatomic, strong) NSString *filename;
@property (nonatomic, strong) NSString *url;
@property (nonatomic, strong) NSURL *audio_stream;
编译器对 *description 属性发出警告
自动属性合成不会合成属性“描述”,因为它是读写的,但会通过另一个属性以只读方式合成 这是什么意思。有什么地方我做得不对吗?
最佳答案
案例 1:
因为 NSString *description
在 NSString.h
中隐式声明为 readonly
属性。这是具有只读访问权限的 AutoSynthesized。如果你想用 readWrite 合成它,那么请手动合成。
您将描述声明为:
@property (nonatomic, strong) NSString *description;
其行为类型为readWrite
。
虽然 NSString.h 将描述声明为只读。
@property (readonly, copy) NSString *description;
如果您仍想将description
用作readWrite
,请在YourClassName.m
文件中手动合成。
在 .m 文件中添加这一行。
@synthesize description;
案例:2
使用 description
以外的其他名称以使用 readWrite
访问权限。
关于ios - 自动属性合成不会合成属性 'description',因为它在 ios objective-c 中是读写的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34960068/