Iphone 如何理解哪些属性适合NSDictionary,例如保留或分配?

Iphone 如何理解哪些属性适合NSDictionary,例如保留或分配?,iphone,objective-c,ios,properties,nsdictionary,Iphone,Objective C,Ios,Properties,Nsdictionary,现在我使用 @property (nonatomic, retain) NSDictionary *currentAttribute; 如果我使用copy或assign而不是retain,内存性能会有更大的差异吗?声明它copy将意味着您将获得一个全新的NSDictionary对象用于您的类。如果它是一个相当大的字典,这可能是一个性能的打击;不是很明显,但无论如何都很重要。通过retaining它,您只需为类提供指向相同NSDictionary实例的指针 如果NSDictionary自动删除,

现在我使用

@property (nonatomic, retain) NSDictionary *currentAttribute;

如果我使用copy或assign而不是retain,内存性能会有更大的差异吗?

声明它
copy
将意味着您将获得一个全新的
NSDictionary
对象用于您的类。如果它是一个相当大的字典,这可能是一个性能的打击;不是很明显,但无论如何都很重要。通过
retain
ing它,您只需为类提供指向相同
NSDictionary
实例的指针


如果
NSDictionary
自动删除,声明它
assign
会使应用程序面临崩溃的风险。如果由于池将其保留计数减少到0,它最终在池中被释放,则您的类将无法再访问它,从而导致崩溃。

retain
也称为
strong
。如果有人在游荡,什么是
strong