我有我的應用程序一個的NSMutableArray,我開始是這樣的:的NSMutableArray:如何用數據填充它,釋放它,用數據填充它再次
H-FILE
NSMutableArray *noteBookContent;
@property (nonatomic, retain) NSMutableArray *noteBookContent;
M-FILE
@synthesize noteBookContent;
然後我有我打開txt文件,並閱讀其內容到一個臨時的NSString和切片此的NSString成不同的位,然後放入NSMutableArray的方法。像這樣:
NSString *tempTextOut = [NSString stringWithContentsOfFile:filePath
encoding:NSUTF8StringEncoding
error:&error];
self.noteBookContent = [[[tempTextOut componentsSeparatedByString: @"\n[DIVIDER]\n"] mutableCopy] autorelease];
我大問題是,如果我重複同樣的過程中幾次發生了什麼。在讀取新數據之前是否需要釋放noteBookContent?是否有數據混淆的可能性,例如如果一個noteBookContent有10個項目(全部被稱爲FRUIT)並且下一個noteBookContent有5個項目(全部被稱爲SALAD),那麼最終是否會有SALAD,SALAD,SALAD,SALAD,SALAD,FRUIT,FRUIT,FRUIT,FRUIT等?
對不起,如果這是顯而易見的,但我真的不明白,當我將新數據讀入已包含舊數據的NSMutableArray中時會發生什麼。
感謝您的任何解釋!
謝謝。爲什麼這更高效?它實際上是否節省?我更喜歡它,因爲它更有意義。很抱歉,如果這一切都很明顯! –
這樣,現有的可變數組就不會被取消分配,也不需要清理其內存 - 它可以重用已有的空間。 –
@ n.evermind - 這可能更有效率,因爲每次加載文件時都不需要重新分配新的「NSMutableArray」,我說也許因爲清空數組本身就會產生成本。儀器測量成本最低。但是,如果你在文件加載後從未真正改變過數組的內容,那麼使用一個不可變的'NSArray'就是要走的路。 – PeyloW