Person
クラスを想像してみましょう:
@interface Person : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic) NSInteger age;
@property (nonatomic) long long identifier;
+ (instancetype)personWithName:(NSString *)name age:(NSInteger)age identifier:(long long)identifier;
@end
@implementation Person
+ (instancetype)personWithName:(NSString *)name age:(NSInteger)age identifier:(long long)identifier {
Person *person = [[self alloc] init];
person.name = name;
person.age = age;
person.identifier = identifier;
return person;
}
@end
次に、次のように人の配列を作成できます。
NSArray *people = @[[Person personWithName:@"Rob" age:32 identifier:2452323],
[Person personWithName:@"Rachel" age:29 identifier:84583435],
[Person personWithName:@"Charlie" age:4 identifier:389433]];
次に、次のように人の名前の配列を抽出できます。
NSArray *names = [people valueForKey:@"name"];
NSLog(@"%@", names);
それは生成します:
2013-09-27 14:57:13.791 MyApp[33198:a0b] (
Rob,
Rachel,
Charlie
)
2 番目の に関する情報を抽出する場合は、次Person
のようになります。
Person *person = people[1];
NSString *name = person.name;
NSInteger age = person.age;
long long identifier = person.identifier;
第三者の年齢を変更する場合は、次のようになります。
Person *person = people[2];
person.age = 5;
または、配列を反復処理して情報を抽出する場合は、それも実行できます。
for (Person *person in people) {
NSString *name = person.name;
NSInteger age = person.age;
long long identifier = person.identifier;
// now do whatever you want with name, age, and identifier
}