Javaでは、私はそれを行うことができます:
int[] abc = new int[10];
for(int i=0; i<abc.length; i++){
abc[i] = i;
}
Objective Cで同様のことを実装するにはどうすればよいですか?
NSMutableArrayを使用していくつかの答えが表示されますが、これとNSArrayではwtが異なりますか?
このようなものを試してください。
#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 を参照してください
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ではwtが異なりますか?
NSArray
is immutable:変更できません。 NSMutableArray
は変更可能なサブクラスであり、配列インターフェイスにメソッドを追加して、その内容を操作できるようにします。これは、Cocoa全体の多くの場所で見られるパターンです。NSString
、NSSet
、およびNSDictionary
は、すべて可変サブクラスを持つ不変オブジェクトである特に頻繁な例です。
これの最大の理由は効率です。あなたは、あなたの下から変わるかもしれないオブジェクトでは作ることができない不変のオブジェクトで、メモリ管理とスレッドセーフについての仮定をすることができます。