да, вы печатаете путь, а не какой-либо элемент в массиве.Измените
[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, чтобы вы получиличисло между 0 и х-1.(В этом случае, поскольку у нас есть 3 вещи внутри перечисления, x = 3)
int randomValue = arc4random() % 3;
, тогда используйте это случайное int в операторе switch
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;
}
надеюсь, это сработает.Я не пробовал это раньше ...