为 plist 数组中的每个项目创建新的 NSStrings
Posted
技术标签:
【中文标题】为 plist 数组中的每个项目创建新的 NSStrings【英文标题】:Creating new NSStrings for each item in a plist array 【发布时间】:2014-07-18 16:26:17 【问题描述】:我正在尝试创建一个类,它获取 Plist 数组中的每个项目并将它们分配给 NSString 以便在程序中的其他类中使用。到目前为止,这是我所拥有的:
NSString *appBundlePath = [[NSBundle mainBundle] bundlePath];
NSString *plist = [appBundlePath stringByAppendingString:@"/Contents/Resources/Values.plist"];
plistArray = [[NSArray alloc] initWithContentsOfFile:plist];
for (NSString* plistItem in plistArray)
finalPlistString = plistItem;
NSLog(finalPlistString);
这段代码在应用程序包中查找 plist,将 plist 的内容分配给 NSArray,并使用 for 循环将 plistItem NSString 设置为 plist 数组中的项目。然后使用 NSLog 记录生成的字符串。它记录 plistArray 中的最后一项,这是有道理的,因为只有一个 NSString 变量可以分配。
如何为 plist 数组中的每个项目创建一个新的 NSString?如果您想知道,plistArray 和 finalPlistString 是在 .h 文件中定义的。
【问题讨论】:
没有得到你想要达到的目标?? 我想获取 plist 中的每个字符串值并将它们分配给一个 NSString 以便我可以在程序的其他地方使用这些字符串。 为什么不在程序的其他地方使用 plistArray 本身呢?它已经包含了所有的字符串值。 plistArray 中的值已经是 NSStrings(除非plist 包含更复杂的实体)。并且将它们分配给 one NSString 是没有意义的。 【参考方案1】:首先,从包中获取 plist 路径的最简单方法是
NSString *path = [[NSBundle mainBundle] pathForResource:@"Values" ofType:@"plist"];
其次,在你读入数组之后,你现在拥有了数组中的所有字符串,以便在你的程序中进一步使用。所以你需要两行代码来获取所有数据。
要访问数组中的第三项,只需使用
plistArray[2]
-- 你不需要做任何其他事情,即你甚至不需要一个变量。例如。分配给你写的标签
label.text = plistArray[2];
下面的 for 循环没有意义。要获取数组的最后一项,这样做更容易:
NSString *lastItem = plistArray.lastObject;
【讨论】:
谢谢。没有意识到我不必将值分配给 NSString 并且我可以直接使用它们。这个解决方案很简单,正是我想要的。以上是关于为 plist 数组中的每个项目创建新的 NSStrings的主要内容,如果未能解决你的问题,请参考以下文章
plist中的NSdictionary对象需要是数组的数组,怎么转换?
需要使用 Objective C 将新的键和值添加到 Plist 中? [复制]