我仍然圍繞着一些Objective-C,我想我已經開始掌握它了。我在玩一些對象數組,我試圖理解下面兩者之間的區別(arr和arr2)。這兩者有什麼區別?
他們似乎都做同樣的事情。如果他們確實有所不同,有人可以提供一些更有效的背景和例子,爲什麼?
NSDate *futureDate = [NSDate distantFuture];
NSDate *todaysDate = [NSDate date];
// what is the difference between these two?
NSArray *arr = [[NSArray alloc] initWithObjects:todaysDate, @"Hello", @"World!", @1, @2, @3, @4, futureDate, nil];
NSArray *arr2 = [NSArray arrayWithObjects:todaysDate, @"Hello", @"World!", @1, @2, @3, @4, futureDate, nil];
for (id item in arr)
NSLog(@"%@", item);
for (id item in arr2)
NSLog(@"%@", item);
更好,你應該先搜索谷歌,然後問這裏,檢查這個 - http://stackoverflow.com/questions/11537372/ios-difference-between-nsmutablearray-alloc-init-and-arraywithobjects –
你會發現那裏大約有八種不同的方法來創建一個NSArray,並且在編寫程序時(或者當程序員開始使用Objective-C時),您幾乎可以約會該樣式。 '@ [todaysDate,@「Hello」,@「World!」,@ 1,@ 2,@ 3,@ 4,futureDate]'是現代化的方式。 –
@HotLicks你確定嗎?當我嘗試用上面的for-in循環遍歷列表時,我得到了EXC_BAD_ACCESS。我把它歸爲:NSArray * arr = [NSArray arrayWithObjects:@ [todaysDate,@「Hello」,@「World!」,@ 1,@ 2,@ 3,@ 4,futureDate,pastDate]]; – Richard