我正在尝试从plist文件中提取一些数据并将其显示在文本字段中(来自UIButton单击)。下面的代码拉取plist的地址而不是数据。任何帮助是极大的赞赏。感谢
-(IBAction) buttonPress {
NSString *path = [[NSBundle mainBundle] pathForResource:@"messages" ofType:@"plist"];
NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:path];
[myMessage setText:path];
}
答案 0 :(得分:2)
[myMessage setText:path];
到
[myMessage setText:[array objectAtIndex:x]; //x = whatever index in the array contains your string.
此外,您可以更改plist以包含dict而不是数组,以便您可以调用特定文本 -
-(IBAction) buttonPress {
NSString *path = [[NSBundle mainBundle] pathForResource:@"messages" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
[myMessage setText:[dict objectForKey:@"text"]];
}
回答你关于arc4random的问题。
创建一个枚举,以便您可以创建一个switch语句 -
typedef enum {
MESSAGE1,
MESSAGE2,
MESSAGE3
} messageIDs;
然后创建一个随机整数并用x修改它,这样你得到一个数字btw 0和x-1。 (在这种情况下,因为我们在枚举中有3个东西,x = 3)
int randomValue = arc4random() % 3;
然后在switch语句中使用random int
switch (randomValue) {
case MESSAGE1:
[myMessage setText:[dict objectForKey:@"message1"]]; //or [myMessage setText:[array objectAtIndex:MESSAGE1]]
break;
case MESSAGE2:
[myMessage setText:[dict objectForKey:@"message2"]];
break;
case MESSAGE3:
[myMessage setText:[dict objectForKey:@"message3"]];
break;
default:
break;
}
希望这有效。我之前没试过......
答案 1 :(得分:0)
它完全按照你所说的去做。
假设messages.plist包含一个字符串数组,您可以轻松获取数组中的最后一项:
[myMessage setText:[array lastObject]];