我有一個NSMutableArray的NSMutableArray的訪問回國的NSArray
@property (copy, nonatomic) NSMutableArray *childrenArray;
現在我初始化這樣的:
self.childrenArray = [NSMutableArray arrayWithArray:children];
孩子也高於nsmutable,
現在,當我從移除對象兒童陣列我得到這個錯誤:
[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent
我立即明白我的刪除是在NSArray上調用的,所以我的查詢是爲什麼我的訪問者返回NSArray,因爲它應該返回NSMutableArray。
謝謝,
嗨,謝謝,我很抱歉,我無法得到你,你可以更簡單地解釋它,如果它的副本問題,那麼我應該使用保留? –
嗨,讀一遍又一遍你的答案後,我的理解是:首先,我不manualy實施setter和getter,合成做的一切,所以這意味着當我用setter初始化我的可變數組,然後它調用複製和複製doesn'保持可變性,所以訪問器返回不可變。其次,所以我需要的是直接初始化成員而不是self.member like thisArray = [[NSMutableArray arrayWithArray:children] retain]; (糾正我,如果我仍然錯了)。謝謝 –
我也認爲我應該使用保留語義而不是副本,因爲副本返回不可變。謝謝。 –