1
在可可Fundametals我發現下面的代碼:子類NSMutableArray的
@interface ValidatingArray : NSMutableArray {
NSMutableArray *embeddedArray;
}
@end
@implementation ValidatingArray
- init {
self = [super init];
if (self) {
embeddedArray = [[NSMutableArray allocWithZone:[self zone]] init];
return self;
}
@end
但我不明白,這行代碼:
embeddedArray = [[NSMutableArray allocWithZone:[self zone]] init];
爲什麼我們使用這種初始化,而不是簡單的內存分配:
embeddedArray = [[NSMutableArray alloc] init];
區域已被有效棄用,應完全忽略。 – bbum 2010-10-24 17:02:57
@bbum:是否將棄用記錄在案? – 2010-10-24 17:31:49
不是。你仍然可以使用區域的東西,但使用是有限的。與基金會混合區域和試圖進行批量重新分配(大部分區域)是災難的祕訣。 – bbum 2010-10-24 19:25:21