0

我有一堆特定于年龄组和性别的活动(这里不是试图成为性别歧视者或性别歧视者,只是一些群体更有可能参加这些活动,所以我试图使用标签来建议他们)

我基本上需要一个可以存储这些信息的数组。

我想要一个基本上看起来像这样的多维数组:

["Playing Video Games", 10, 24, "male"],
["Putting on Makeup", 14, 50, "female"], 
["Sleeping", 0, 100, "both"]

["Activity name string", age lower limit, age upper limit, "genders allowed"];

如何在 iOS 中创建它?

我会将其存储在 userDefaults 中。

4

2 回答 2

3

Objective-C是一种面向对象的编程语言。因此,您需要创建一个名为“Person”的自定义类,然后添加所需的properties.

例如,.h您需要的自定义类的文件将类似于:

@interface Person : NSObject

@property (nonatomic, assign) NSString *activity;
@property (nonatomic, assign) NSString *sex;
@property int ageLowerLimit;
@property int ageUpperLimit;

@end

然后你可以先管理这些对象,

在您的代码中导入此自定义类:

#import "Person.h"

然后创建一个新的Person类型对象:

Person *firstPerson = [[Person alloc] init];
[firstPerson setActivity : @"Sleeping"];
[firstPerson setSex : @"Male"];
[firstPerson setAgeLowerLimit : 0];
[firstPerson setAgeUpperLimit : 100];

要存储它们,您可以使用CoreData或只使用旧的NSUserDefaults.

以下是该方法的NSUserDefaults方法:

您首先将各种Person对象存储在 中NSMutableArray,然后同步默认值:

NSMutableArray *people = [[NSMutableArray alloc] init];
[people addObject : firstPerson];

NSUserDefaults *defaults = [NSUserDefaults standardDefaults];
[defaults setObject:people forKey:@"PEOPLE"];

[defaults synchronise];

要稍后使用这些对象,请执行以下操作:

NSUserDefaults *defaults = [NSUserDefaults standardDefaults];
NSMutableArray *savedPeople = [defaults objectForKey:@"PEOPLE"];
Person *person1 = [savedPeople objectAtIndex:0];
于 2013-11-15T09:41:29.840 回答
0

罗伯特是对的,你应该使用 CoreData。有一个很好的 [Core Data Tutorial][1] 解释了基础知识。

在使用 UserDefaults 时,您可以将数据存储在数组中

 [[NSUserDefaults standardUserDefaults] setObject:myArray forKey:@"myArray"];
于 2013-11-15T09:43:04.663 回答