可变类型'NSMutableDictionary'的属性具有'copy'属性;一个不可变对象将代替
我使用Xcode9存储,我试图分析project.Then我得到了下面的问题,像可变类型'NSMutableDictionary'的属性具有'copy'属性;一个不可变对象将代替
可变类型的特性“的NSMutableDictionary”有“复制”属性; 不可变对象将被保存,而不是
请通过图片显示了分析问题
如何解决这个问题?
在Objective-C中,有一个在NSCopying
中定义的复制方法,其他的是在NSMutableCopying
中定义的mutableCopy
。 NSDictionary(NSMutableDictionary的超类)符合这两个协议。
但是在属性访问器,只有副本可它使用上NSMutableDictionary
复制方法,当你运行静态分析仪,以创建一个不可变对象,因此警告,因为你现在正在努力的NSDictionary
对象存储到NSMutableDictionary
参考。
如果你打电话给这个参考的任何NSMutableDictionary
方法,我认为应用程序应该崩溃。
为了解决这个问题,你可以使用强大的,它可以为你提供参考。但是,如果你真的需要一个副本(无论何种原因),您可以编写自己的二传手,像这样:
@property (nonatomic) NSMutableDictionary *parameters;
- (void)setParameters:(NSMutableDictionary *)parameters {
_parameters = [parameters mutableCopy];
}
那么应该如何使用,你可以添加一些例子 –
@ Anbu.Karthik:我编辑了答案 –
欣赏兄弟。 –
为什么你使用'copy' –
是它需要“复制”?有什么理由使用它? –
贾克检查答案 –