13

以前に使用したコードを使用して、plistを配列にロードすることに成功しました。

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"species_names" ofType:@"plist"];
NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];

initWithContentsOfファイルが失敗しています(配列がnullであり、アプリバンドルでplistが見つからないことを示しています)。

iPhoneシミュレーターで、最初の行で作成されたパスがアプリファイルを指していることを確認し(実際にそうです)、Finderのコンテキストメニュー[パッケージの定数を表示]を使用して、「species_name.plist」が実際に存在することを証明しました。バンドル-何かが含まれていることを示唆する長さであるため、機能するはずです(そして私が書いた他のiOSアプリでもそうです)。提案は大歓迎です...

[env Xcode 4.2ベータ版、iOS4.3.2]。

4

3 に答える 3

3

plistこのタイプの:

ここに画像の説明を入力してください

または(基本的に両方とも同じです)

ここに画像の説明を入力してください

このように読むことができます:

NSString *file = [[NSBundle mainBundle] pathForResource:@"appFeatures" ofType:@"plist"];
NSArray *_arrFeats = [NSArray arrayWithContentsOfFile:file];
NSLog(@"%d", _arrFeats.count);

appFeaturesの名前はどこにありますかplist。(iOS 6.1)

于 2013-03-12T12:55:02.040 に答える
0

この簡単な方法を試してください:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self plistData];
}


- (void)plistData
{
    NSString *file = [[NSBundle mainBundle] pathForResource:@"appFeatures" ofType:@"plist"];
    NSArray *messages = [NSArray arrayWithContentsOfFile:file];
    NSLog(@"%d", messages.count);

    for (int i=0; i<messages.count; i++)
    {
        NSString *data = [messages objectAtIndex:i];
        NSLog(@"\n Data = %@",data);
    }
}
于 2014-01-31T12:49:29.043 に答える