2017-09-14 59 views

回答

2

在Objective-C中,有一个在NSCopying中定义的复制方法,其他的是在NSMutableCopying中定义的mutableCopy。 NSDictionary(NSMutableDictionary的超类)符合这两个协议。

但是在属性访问器,只有副本可它使用上NSMutableDictionary复制方法,当你运行静态分析仪,以创建一个不可变对象,因此警告,因为你现在正在努力的NSDictionary对象存储到NSMutableDictionary参考。

如果你打电话给这个参考的任何NSMutableDictionary方法,我认为应用程序应该崩溃。

为了解决这个问题,你可以使用强大的,它可以为你提供参考。但是,如果你真的需要一个副本(无论何种原因),您可以编写自己的二传手,像这样:

@property (nonatomic) NSMutableDictionary *parameters; 

- (void)setParameters:(NSMutableDictionary *)parameters { 
    _parameters = [parameters mutableCopy]; 
} 
+0

那么应该如何使用,你可以添加一些例子 –

+0

@ Anbu.Karthik:我编辑了答案 –

+1

欣赏兄弟。 –