Cocoa 如何在NSMutableArray中仅包含对对象的引用?
假设我们有一个NSMutableArray(或NSMutableDictionary),其中包含来自同一类型“Class1”的数据 我想创建一个新的NSMutableArray(或NSMutableDictionary),其中只包含前一个数组的一半数据 我想要的是在我创建的第二个可变对象中,只引用已经存在的对象,而不是“复制”它们 例如,如果我更改第一个可变对象中某个对象的某个属性值,以立即在第二个可变对象中进行更改 例如: 假设我有一个名为Person的NSMutableArray类型的对象,Person类中有3个属性:Cocoa 如何在NSMutableArray中仅包含对对象的引用?,cocoa,nsarray,Cocoa,Nsarray,假设我们有一个NSMutableArray(或NSMutableDictionary),其中包含来自同一类型“Class1”的数据 我想创建一个新的NSMutableArray(或NSMutableDictionary),其中只包含前一个数组的一半数据 我想要的是在我创建的第二个可变对象中,只引用已经存在的对象,而不是“复制”它们 例如,如果我更改第一个可变对象中某个对象的某个属性值,以立即在第二个可变对象中进行更改 例如: 假设我有一个名为Person的NSMutableArray类型的对象,
- 名字
- 姓
- 性别
如果两个数组中的名称都是“XXX”,那么当我将第一个数组中的名称改为“YYY”并打印出第二个数组中的值时,应该是“XXX”,现在应该是“YYY”。这就是所有
NSMutableArray
对象的工作方式。ObjC在将对象放入集合时很少复制对象(字典的键是主要的例外)。这就是它的工作原理。你有什么问题?显然没有我来自.NET。作为IBOutlets的属性如何?IBOutlets
是一个空的装饰,用于让界面生成器知道您希望能够连接到哪些内容(请参见nsnibdesclarations.h
和uinibdesclarations.h
)。它对代码没有编译时或运行时的影响。也就是说,我想不出哪种情况下会有一个NSMutableArray
,它也是一个IBOutlet
。我已经使用NSDictionary很多年了,不知道它会复制密钥,很好,我想我只为它们使用过短NSString