初始化使用NSArray的对象Array [英] Initialize Array of Objects using NSArray
问题描述
我是pretty新的Objective-C和iOS所以我一直在选择器视图玩耍。我定义了一个Person类,这样,当你创建一个新的人,它会自动给此人的姓名和年龄。
#进口Person.h@implementation人@synthesize PERSONNAME,年龄; - (ID)的init
{
自= [超级初始化]
如果(个体经营)
{
PERSONNAME = [个体经营randomName]
年龄= [个体经营randomAge]
} 返回自我;
} - (的NSString *)randomName
{
* NSString的名称;
NSArray的* nameArr = [NSArray的arrayWithObjects:@吉尔情人节,@彼得·格里芬,@梅格格里芬,@杰克Lolwut
@迈克Roflcoptor,@辛迪·伍兹,@杰西卡风车,@亚历山大大帝,
@莎拉·彼得森,@斯科特Scottland,@杰夫芬达,@阿曼达教皇,@迈克尔·迈尔斯
@理查德Biggus,@Montey Python的@迈克武汉理工大学,@冒充者,@椅子,
零];
NSUInteger randomIndex = arc4random()%[nameArr计数]
命名= [nameArr objectAtIndex:randomIndex];
返回名称;
} - (NSInteger的*)randomAge
{
//下界+ arc4random()%(上界 - 下界);
NSInteger的* NUM =(NSInteger的*)(1 + arc4random()%(99 - 1)); 返回NUM;
}@结束
现在我想打的人组成的数组,所以我可以抛出一堆入选择器,挑一个人,并显示他们的年龄。首先,虽然我需要的人的数组。如何使对象数组初始化并对其进行分配?
的NSMutableArray *人= [NSMutableArray的阵列]
的for(int i = 0; I< myPersonsCount;我++){
[人ADDOBJECT:[[人页头]初始化];
}
NSArray的* arrayOfPersons = [NSArray的arrayWithArray:人]; //如果你想一成不变的数组
你也可以不使用的NSMutableArray达到这个:
的NSArray *人= [NSArray的阵列]
的for(int i = 0; I< myPersonsCount;我++){
人= [人arrayByAddingObject:[[人页头]初始化];
}
还有一件事 - 这是有效的ARC启用的环境中,如果你要使用它,而不ARC不要忘了自动释放对象添加到数组!
[人ADDOBJECT:[[[人页头] INIT]自动释放];
I'm pretty new to Objective-C and iOS so I've been playing around with the Picker View. I've defined a Person Class so that when you create a new Person it automatically gives that person a name and age.
#import "Person.h"
@implementation Person
@synthesize personName, age;
-(id)init
{
self = [super init];
if(self)
{
personName = [self randomName];
age = [self randomAge];
}
return self;
}
-(NSString *) randomName
{
NSString* name;
NSArray* nameArr = [NSArray arrayWithObjects: @"Jill Valentine", @"Peter Griffin", @"Meg Griffin", @"Jack Lolwut",
@"Mike Roflcoptor", @"Cindy Woods", @"Jessica Windmill", @"Alexander The Great",
@"Sarah Peterson", @"Scott Scottland", @"Geoff Fanta", @"Amanda Pope", @"Michael Meyers",
@"Richard Biggus", @"Montey Python", @"Mike Wut", @"Fake Person", @"Chair",
nil];
NSUInteger randomIndex = arc4random() % [nameArr count];
name = [nameArr objectAtIndex: randomIndex];
return name;
}
-(NSInteger *) randomAge
{
//lowerBound + arc4random() % (upperBound - lowerBound);
NSInteger* num = (NSInteger*)(1 + arc4random() % (99 - 1));
return num;
}
@end
Now I want to make an array of Persons so I can throw a bunch into the picker, pick one Person and show their age. First though I need to make an array of Persons. How do I make an array of objects, initialize and allocate them?
NSMutableArray *persons = [NSMutableArray array];
for (int i = 0; i < myPersonsCount; i++) {
[persons addObject:[[Person alloc] init]];
}
NSArray *arrayOfPersons = [NSArray arrayWithArray:persons]; // if you want immutable array
also you can reach this without using NSMutableArray:
NSArray *persons = [NSArray array];
for (int i = 0; i < myPersonsCount; i++) {
persons = [persons arrayByAddingObject:[[Person alloc] init]];
}
One more thing - it's valid for ARC enabled environment, if you going to use it without ARC don't forget to add autoreleased objects into array!
[persons addObject:[[[Person alloc] init] autorelease];
这篇关于初始化使用NSArray的对象Array的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!