【问题标题】:merge two arrays from a plist file into one将 plist 文件中的两个数组合并为一个
【发布时间】:2014-03-20 09:58:50
【问题描述】:

基本上我已经创建了一个应用程序,它从给定的 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 结构

- (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);

}

另外,我如何确保用户不会被问两次相同的问题?我在考虑按照变量设置是或否,如果是,那么问,然后不问?我们将如何做到这一点?

【问题讨论】:

    标签: ios objective-c nsarray plist


    【解决方案1】:

    我想出了这段代码。唯一的问题是我似乎无法释放数组?

    你们怎么看?

    - (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);
    

    }

    【讨论】:

    • 为什么要释放数组?这些是在函数退出后立即释放的局部变量。
    • 哦,是的,对不起,我是初学者,这仍然是全新的
    猜你喜欢
    • 2021-07-16
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2011-06-02
    • 2022-01-10
    • 2014-05-14
    相关资源
    最近更新 更多