我只是不明白!我有自定義類「Word」,我也生成幾個步驟的Word類對象的NSMutableArray:Objective-c對象的NSMutableArray保留
- words = [NSMutableArray array];
- for i = 0 to 8
- word = alloc + init;
- [words addObject:word];
- [單詞發佈];
然後我通過話實例另一個類的setter方法:
someInstance.words = words;
凡的話說就是非原子,保留屬性。我宣佈setWords方法是這樣的:
-(void)setWords:(NSMutableArray *)w {
[w retain];
[words release];
words = w;
}
當話來的方法爲「W」變量是對象的數組,但是當我保留它,並分配給我的老價值我的話變量變成一個NSMutableArray和指望它等於w.count,但是數組爲0x0。 「=」運算符不會複製數組的項目,我該如何解決它?請幫助,我是一個新手在objective-c。 我instanciate Word只有一種方法,我應該實現無參數初始化方法?
-(id)initWithId:(int)Id Word:(NSString *)Word Card:(int)Card {
self.id = Id;
self.word = Word;
self.card = Card;
return self;
}
,我生成我的NSMutableArray循環:
Card *card = [[Card alloc] initWithId:[s intForColumn:@"id"] Type:[s intForColumn:@"type"] Used:[s intForColumn:@"used"]];
s = [db executeQueryWithFormat:@"SELECT w.id as id, word, card FROM word as w INNER JOIN card as c ON w.card=c.id WHERE c.id=%i ORDER BY w.id, RANDOM()", card.id];
while ([s next]) {
Word *word = [[Word alloc] initWithId:[s intForColumn:@"id"] Word:[s stringForColumn:@"word"] Card:[s intForColumn:@"card"]];
[card.words addObject:word];
[word release];
}
要了解,你可以看看截圖,我無法將其插入,因爲小有名氣帖子:http://i.stack.imgur.com/UheIk.png – 2012-02-08 21:26:24
向我們展示你的子類的init方法。 – Rog 2012-02-08 21:30:28
另一個想法是在你的setter方法中使用'words = [w mutableCopy]'。 – Rog 2012-02-08 21:34:53