-2

重複の可能性:
plist からランダムな単語を表示する

いくつかの単語を含む plist があり、その plist のランダムな単語を表示しようとしましたが、アプリがクラッシュし、問題の解決方法がわかりません。

これは私のコードです:

NSArray *randomAddons = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"wordsENG" ofType:@"plist"]];

NSLog(@"Array: %@", randomAddons);

int randomIndex = arc4random() % [randomAddons count];

mainTextController.text = [username2 stringByAppendingString:[randomAddons objectAtIndex:randomIndex]];

これはクラッシュです:

Array: (
    (
    DANDAN,
    DONDON,
    SAMSAM,
    SANSAN
)
)
2012-07-10 11:23:28.047 spinningyarn[336:1bb03] -[__NSCFArray length]: unrecognized     selector sent to instance 0xa26cad0
2012-07-10 11:23:28.047 spinningyarn[336:1bb03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray length]: unrecognized selector sent to instance 0xa26cad0'
*** First throw call stack:
(0x1b04022 0x1ee0cd6 0x1b05cbd 0x1a6aed0 0x1a6acb2 0x1468bd9 0x115dc3 0x3de995 0x979ed9 0x981725 0x8ea4ab 0x9837c6 0x8c9885 0x2166330 0x2168509 0x1a3b803 0x1a3ad84 0x1a3ac9b 0x26287d8 0x262888a 0xb3d626 0x29e2 0x2955 0x1)
terminate called throwing an exception

誰かが私を助けてくれることを願っています

4

1 に答える 1

3

randomAddons は、1 つの配列を含む配列です...

これを試して:

NSArray *randomAddons = [(NSArray*)[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"wordsENG" ofType:@"plist"]] objectAtIndex:0];

NSLog(@"Array: %@", randomAddons);

int randomIndex = arc4random() % [randomAddons count];

mainTextController.text = [username2 stringByAppendingString:[randomAddons objectAtIndex:randomIndex]];
于 2012-07-10T09:38:04.950 に答える