您可以创建一个包含字符串数组的属性列表文件。例如,创建一个名为 的 plist 文件words.plist
,然后使用 Xcode 内置的 plist,编辑器将根对象设置为数组,并将行添加到数组中。您可以使用以下方式加载它:
NSURL *plistURL = [[NSBundle mainBundle] URLForResource:@"words" withExtension:@"plist"];
NSArray *words = [NSArray arrayWithContentsOfURL:plistURL];
// pick a random word:
NSString *randomWord = [words objectAtIndex:arc4random_uniform(words.count)];
这有以下好处:
plist 文件是可本地化的,因此可以将其翻译成多种语言,而无需修改加载 plist 的代码。
尝试将数据和代码分开是个好主意。
单词列表可以从您想要的任何 URL 加载,包括从 Web 服务器加载。
举个例子:
MyAppDelegate.h
@interface MyAppDelegate : NSObject <UIApplicationDelegate>
@property NSArray *words;
// ... and your other properties as well
@end
MyAppDelegate.m
@implementation MyAppDelegate
- (void) applicationDidFinishLaunching:(UIApplication *) app
{
NSURL *plistURL = [[NSBundle mainBundle] URLForResource:@"words" withExtension:@"plist"];
self.words = [NSArray arrayWithContentsOfURL:plistURL];
}
- (NSString *) pickRandomWord
{
return [self.words objectAtIndex:arc4random_uniform(self.words.count)];
}
- (NSString *) makeRandomSentence
{
NSMutableString *result = [NSMutableString string];
for (NSUInteger i = 0; i < 10; i++)
[result appendFormat:@"%@ ", [self pickRandomWord]];
return result;
}
@end