在Java中,我能做到這一點:如何在目標C中創建一個空數組,然後逐個賦值給它?
int[] abc = new int[10];
for(int i=0; i<abc.length; i++){
abc[i] = i;
}
我如何能實現的目標C類似的事情?
我看到一些使用NSMutableArray的答案,wt與此和NSArray不同?
在Java中,我能做到這一點:如何在目標C中創建一個空數組,然後逐個賦值給它?
int[] abc = new int[10];
for(int i=0; i<abc.length; i++){
abc[i] = i;
}
我如何能實現的目標C類似的事情?
我看到一些使用NSMutableArray的答案,wt與此和NSArray不同?
嘗試這樣的事情。
#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);
}
NSMutableArray* abc = [NSMutableArray array];
for (int i = 0; i < 10; ++ i)
[abc addObject:[NSNumber numberWithInt:i]];
return abc;
這裏,
-addObject:
在數組的末尾附加一個ObjC。這實際上是更類似於C++代碼
std::vector<int> abc;
for (int i = 0; i < 10; ++ i)
abc.push_back(i);
return abc;
我看到使用 NSMutableArray的一些答案,重量是 這和NSArray的有什麼不同?
NSArray
是不變:它不能改變。 NSMutableArray
是一個可變的子類,它向數組接口添加方法,允許對其內容進行操作。這是可可中許多地方出現的模式:NSString
,NSSet
和NSDictionary
是特別頻繁的例子,它們都是具有可變子類的不可變對象。
其中最大的原因是效率。您可以使用不可變對象進行內存管理和線程安全方面的假設,這些對象不能用可能從您下面更改的對象創建。
這不回答如何ASSIGN到一個特定的索引。只有如何從中讀取。 – 2014-04-13 14:53:41