可以請人給我解釋一下下面的代碼片段之間的差異來填充myStrings陣列:灌裝NSMutableArray的Objective-C的
NSString *match = @"ad*.png";
NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *dirContents = [fm contentsOfDirectoryAtPath:bundleRoot error:nil];
NSPredicate *fltr = [NSPredicate predicateWithFormat:@"SELF like %@", match];
NSArray *onlyPNGs = [dirContents filteredArrayUsingPredicate:fltr];
myStrings = [NSMutableArray array];
for(int i=0;i<[onlyPNGs count];i++)
{
[myStrings addObject:(NSString *)[onlyPNGs objectAtIndex:i]];
}
NSLog([myStrings description]);
當我填寫我的數組這種方式,構造後,myStrings成爲空莫名其妙,但而不是填充過濾器,如果我手動添加項目everythings罰款:
[myStrings addObject:@"adburgerking1.png"];
[myStrings addObject:@"adburgerking2.png"];
[myStrings addObject:@"adburgerking3.png"];
[myStrings addObject:@"addominos1.png"];
[myStrings addObject:@"admcdonalds1.png"];
[myStrings addObject:@"admcdonalds2.png"];
[myStrings addObject:@"admcdonalds3.png"];
[myStrings addObject:@"admeshuriskender1.png"];
[myStrings addObject:@"adquickchina1.png"];
[myStrings addObject:@"adsencam1.png"];
[myStrings addObject:@"adsultanahmetkoftecisi1.png"];
在此先感謝!
出於好奇,什麼樣的變量是'myStrings'?它只是一個普通的伊娃,還是它的財產?如果它是一個財產,你使用ARC?如果您使用的是ARC,請確保屬性類型是STRONG或COPY,否則它將被釋放並且無效。 – Malaxeur 2012-04-07 07:57:41
即時通訊編程相當新,但即時通訊嘗試將文件名稱存儲爲NSString *。在頭文件中: @property(nonatomic,retain)NSMutableArray * myStrings; – dramaticlook 2012-04-07 09:17:52
你可能有一個局部變量,也稱爲'myStrings',它隱藏了實例變量? – 2012-04-07 09:33:16