我对Objective-C和iOS非常陌生,所以我一直在玩Picker视图.我定义了一个Person类,这样当你创建一个新的Person时,它会自动给这个人一个名字和年龄.

#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

现在我想做一组人,这样我就可以把一堆人扔进挑选器,挑选一个人,并显示他们的年龄.首先,我需要做一系列的人.如何创建对象数组、初始化和分配它们?

推荐答案

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

您也可以在不使用NSMutableArray的情况下实现这一点:

NSArray *persons = [NSArray array];
for (int i = 0; i < myPersonsCount; i++) {
   persons = [persons arrayByAddingObject:[[Person alloc] init]];
}

还有一件事——它对启用ARC的环境有效,如果您要在不使用ARC的情况下使用它,请不要忘记将自动释放的对象添加到数组中!

[persons addObject:[[[Person alloc] init] autorelease];

Objective-c相关问答推荐

Objective-C NSMutableArray 在枚举时发生了变异?

核心数据 - 如何获取具有最大值属性的实体

iOS 应用程序下一个键不会转到下一个文本字段

从日、月、年生成 NSDate

NSMutableDictionary 线程安全

如何获取 iPhone 的当前方向?

BSXPCMessage 收到消息错误:连接中断

反编译 Objective-C 库

如果目录不存在,是否有更安全的方法来创建目录?

如何删除应用程序可访问的所有 keys 串项目?

NSURLConnection sendAsynchronousRequest:queue:completionHandler:连续发出多个请求?

仅在 UIView 顶部的圆角

将 UIColor 保存到 NSUserDefaults 并从中加载

UIScrollView - 显示滚动条

Highlighted 和 Selected UIButton 的 State 有什么区别?

@dynamic 在 Objective-C 中做了什么?

为什么使用弱指针进行委托?

通过点击状态栏滚动到 UITableView 的顶部

如何判断 WkWebView 是否在 Objective-C 中完成加载?

Xcode 的不完整实现警告