В Java я могу это сделать:
int[] abc = new int[10];
for(int i=0; i<abc.length; i++){
abc[i] = i;
}
Как я могу реализовать аналогичную вещь в Objective C?
Я вижу некоторый ответ, используя NSMutableArray, wt между ним и NSArray?
В Java я могу это сделать:
int[] abc = new int[10];
for(int i=0; i<abc.length; i++){
abc[i] = i;
}
Как я могу реализовать аналогичную вещь в Objective 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);
}
Смотрите CocoLab
NSMutableArray* abc = [NSMutableArray array];
for (int i = 0; i < 10; ++ i)
[abc addObject:[NSNumber numberWithInt:i]];
return abc;
Здесь
-addObject:
добавляет ObjC в конец массива.Это больше похоже на код С++
std::vector<int> abc;
for (int i = 0; i < 10; ++ i)
abc.push_back(i);
return abc;
Я вижу некоторый ответ, используя NSMutableArray, wt отличается между это и NSArray?
NSArray
является неизменным: его нельзя изменить. NSMutableArray
- это подкласс, который является изменяемым, и добавляет методы к интерфейсу массива, позволяя манипулировать его содержимым. Это шаблон, который можно увидеть во многих местах по всему Cocoa: NSString
, NSSet
и NSDictionary
- особенно частые примеры, которые являются неизменяемыми объектами с изменяемыми подклассами.
Самая большая причина для этого - эффективность. Вы можете сделать предположения об управлении памятью и безопасности потоков с неизменяемыми объектами, которые вы не можете сделать с объектами, которые могут измениться из-под вас.