2010-02-25 21 views

回答

16

嘗試這樣的事情。

#import <foundation/foundation.h> 
int main (int argc, const char * argv[]) 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    NSMutableArray *myArray = [NSMutableArray array]; 
    [myArray addObject:@"first string"]; 
    [myArray addObject:@"second string"]; 
    [myArray addObject:@"third string"]; 
    int count = [myArray count]; 
    NSLog(@"There are %d elements in my array", count); 
    [pool release]; 
    return 0; 
} 

循環看起來像:

NSString *element; 
int i; 
int count; 
for (i = 0, count = [myArray count]; i < count; i = i + 1) 
{ 
    element = [myArray objectAtIndex:i]; 
    NSLog(@"The element at index %d in the array is: %@", i, element); 
} 

CocoLab

+0

這不回答如何ASSIGN到一個特定的索引。只有如何從中讀取。 – 2014-04-13 14:53:41

10
NSMutableArray* abc = [NSMutableArray array]; 
for (int i = 0; i < 10; ++ i) 
    [abc addObject:[NSNumber numberWithInt:i]]; 
return abc; 

這裏,

  • NSMutableArray的是 「可變的」 數組類型。還有一個常量數組超類NSArray。與C++不同,ObjC的數組沒有輸入。您可以將任何ObjC對象存儲在NSArray中。
  • -addObject:在數組的末尾附加一個ObjC。
  • 由於NSArrays只能存儲ObjC,所以必須先將整數「打」到NSNumber中。

這實際上是更類似於C++代碼

std::vector<int> abc; 
for (int i = 0; i < 10; ++ i) 
    abc.push_back(i); 
return abc; 
3

我看到使用 NSMutableArray的一些答案,重量是 這和NSArray的有什麼不同?

NSArray不變:它不能改變。 NSMutableArray是一個可變的子類,它向數組接口添加方法,允許對其內容進行操作。這是可可中許多地方出現的模式:NSString,NSSetNSDictionary是特別頻繁的例子,它們都是具有可變子類的不可變對象。

其中最大的原因是效率。您可以使用不可變對象進行內存管理和線程安全方面的假設,這些對象不能用可能從您下面更改的對象創建。

相關問題