ios - 如何从嵌套在 plist 文件的字典中的数组中访问随机值?

标签 ios objective-c plist

基本上我需要从 plist 中获取一个随机字母和与该字母相关的点。 老实说,我不确定我是否以最好的方式设置了我的 plist,我以前从未使用过 plist: enter image description here

一旦我开始工作,我将把 C-Z 添加到 plist 中,每个字母都有关联的点。我刚刚创建了一个基本的文字拼贴游戏来尝试和学习 sprite 工具包。

到目前为止,我已经能够访问 plist 文件,但没有任何运气获得随机字母和它的点数。我尝试的一切都遇到了各种错误。

Here's my code so far to access the plist:
        NSString* fileName = @"letters.plist";
        NSString* filepath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];

        NSDictionary* lettersPlist = [NSDictionary dictionaryWithContentsOfFile:filepath];
        NSDictionary* letters = lettersPlist[@"letters"];

那么我如何从这个 plist 中获得一个随机字母和它的点数呢?有没有更好的方法来做到这一点?

最佳答案

只需在 0 和 letters 数组中的项目数之间获取一个随机数,然后取出该信息。例如,继续您的代码:

u_int32_t bound = (u_int32_t)[letters count];
NSDictionary* randomLetterInfo = letters[arc4random_uniform(bound)];
NSString* randomLetter = randomLetterInfo[@"Letter"];
NSString* points = randomLetterInfo[@"Points"]; // points are a string in your plist

关于ios - 如何从嵌套在 plist 文件的字典中的数组中访问随机值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19611439/

相关文章:

objective-c - 组织 Objective-C 源文件

ios - 是否可以在单个 plist 中发送多个命令 - 苹果 MDM 协议(protocol)

ios - Xcode8.3-无效的位码签名

iOS 6 : How do I restrict some views to portrait and allow others to rotate?

ios - 如何通过 USB 镜像 iOS 屏幕?

ios - 替换嵌套 NSDictionary 中出现的 NSNull

objective-c - 写入plist的问题

iphone - 如何干净地覆盖属性 setter ?

iphone - 对象C : how to insert component to url from A/B to A/between/B?

ios - 由于发送到 VC 的无法识别的选择器导致应用程序崩溃