ios - 使用 NSArray 初始化对象数组

标签 ios objective-c arrays nsarray

我对 Objective-C 和 iOS 还很陌生,所以我一直在玩 Picker View。我已经定义了一个 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

现在我想创建一个 Person 数组,这样我就可以将一堆放入选择器中,选择一个 Person 并显示他们的年龄。首先,虽然我需要创建一个 Persons 数组。如何创建对象数组、初始化和分配它们?

最佳答案

还有一个简写方式:

NSArray *persons = @[person1, person2, person3];

相当于

NSArray *persons = [NSArray arrayWithObjects:person1, person2, person3, nil];

正如 iiFreeman 所说,如果您不使用 ARC,您仍然需要进行适当的内存管理。

关于ios - 使用 NSArray 初始化对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970412/

相关文章:

ios - 如何在用户退出时保存当前选项卡栏项目并在重新启动时重新加载到该项目?

arrays - 如何在 SwiftUI 中计算数组的总计、小计和平均值

javascript - 根据子数组中的对象值过滤对象数组

ios - 带有自定义 View 的 UIPickerView 在 iOS7 中损坏

iphone - 自定义 UIITableViewCell 中的 UIImageView 在重新加载时不会切换

ios - 找不到在 Objective-C 文件中声明的引用 socket

ios - 需要根据收到的json数据显示TableView的sections和rows

ios - 代码在模拟器上运行良好,但在真实设备上却为零

objective-c - 连接到多个 Controller 的 iOS subview 小部件

c - 二维字符数组的 malloc 函数的段错误