Как поместить в массив различные типы полей в target-c - PullRequest
0 голосов
/ 05 марта 2012

Я пишу приложение для iPhone в Objective-C. Я хочу объявить массив, который будет содержать поля различного типа, такие как: int, NSString, bool. Могу ли я это сделать?

Ответы [ 4 ]

2 голосов
/ 05 марта 2012

Вы можете поместить любые элементы в NSArray, если они являются объектами.Таким образом, вы должны обернуть элементы, которые не являются объектами (например, BOOL, int и CGPoint), в некоторые объекты, такие как NSNumber или NSValue.

NSMutableArray *array = [[NSMutableArray] alloc] init];

[array addObject:myString];

[array addObject:[NSNumber numberWithInt:1]];

[array addObject:[NSNumber numberWithFloat:1.0]];

[array addObject:[NSValue valueWithPoint:myPoint]]; // myPoint is a CGPoint

[array addObject:[NSValue valueWithRect:myRect]]; // myRect is a CGRect
1 голос
/ 05 марта 2012

Да, вы можете

NSMutableArray *array = [NSMutableArray array];
NSString *string = @"str";
[array addObject:string]; //string
NSNumber *num = [NSNumber numberWithInt:1];
[array addObject:num]; //int
NSNumber *boolNum = [NSNumber numberWithBool:YES];
[array addObject:boolNum]; //bool
0 голосов
/ 05 марта 2012

Используйте NSMutableArray.

NSMutableArray *array = [[NSMutableArray alloc]init];

Теперь используйте метод addObject: для добавления объектов .для добавления значения типа int, bool создайте NSNumber объект.

0 голосов
/ 05 марта 2012

Это возможно.Просто создайте массив и добавьте объекты, которые вы хотите добавить.

...