将plist文件中的两个数组合并为一个

时间:2014-03-20 09:58:51

标签: ios objective-c nsarray plist

基本上我创建了一个应用程序,它从给定的plist中选择随机字符串,然后将它们显示给用户。目前我有一个说真话的目录和一个敢于用户点击真相显示真相,当他们点击它显示敢于敢。

保持相同的结构我想添加一个随机按钮,允许用户点击随机,它显示真相或敢于如何从两个数组中读取数据。

我想将两个数组合并为一个,然后输出一个随机问题。我试图谷歌它,但似乎陷入了这个。

这是我的代码

- (IBAction)dare:(id)sender {
NSString *path = [[NSBundle mainBundle] pathForResource:
                  @"extreme" ofType:@"plist"];

NSDictionary *plistDict = [[NSDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *plistArray = plistDict[@"dare"];

int randV = arc4random() % plistArray.count;

self.joke.text = plistArray[randV];

NSLog(@"dictionary: %@, array: %@", plistDict, plistArray);

}

Plist结构 Plist structure

- (IBAction)truth:(id)sender {


NSString *path = [[NSBundle mainBundle] pathForResource:
                  @"extremem" ofType:@"plist"];

NSDictionary *plistDict = [[NSDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *plistArray = plistDict[@"truth"];

int randV = arc4random() % plistArray.count;


self.joke.text = plistArray[randV];

NSLog(@"dictionary: %@, array: %@", plistDict, plistArray);

}

另外,我如何确保用户不会被问两次相同的问题?我正在考虑一个变量的行来设置是或否,如果它们是肯定的那么请问那么不要问?我们怎么做?

1 个答案:

答案 0 :(得分:0)

我已经提出了这个代码。唯一的问题是我似乎无法释放阵列?

你觉得怎么样?

- (IBAction)truth:(id)sender {


NSString *path = [[NSBundle mainBundle] pathForResource:
                  @"test" ofType:@"plist"];

NSDictionary *plistDict = [[NSDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *plistArray = plistDict[@"truth"];
NSDictionary *plistDict2 = [[NSDictionary alloc] initWithContentsOfFile:path];
NSMutableArray *plistArray2 = plistDict2[@"dare"];

plistArray = [plistArray arrayByAddingObjectsFromArray:plistArray2];

NSLog(@"%@", plistArray);


int randV = arc4random() % plistArray.count;


self.joke.text = plistArray[randV];

NSLog(@"dictionary: %@, array: %@", plistDict, plistArray);

}