4

私は本質的にディレクトリとなるPLISTの構築に取り組んでいます。テーブルビューに姓を表示できるようにplistを解析し、選択すると、次のビューのラベルに住所、電話番号、電子メールなどを入力します。いくつかのガイダンスを使用できます。これまでに作成したものは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <array> <string>Last Name</string> <string>First Name</string> <string>Address</string> <string>Phone Number</string> <string>Email</string> </array> <array> <string>Last Name</string> <string>First Name</string> <string>Address</string> <string>Phone Number</string> <string>Email</string> </array> <array> <string>Last Name</string> <string>First Name</string> <string>Address</string> <string>Phone Number</string> <string>Email</string> </array>

このplistの設定は適切ですか、それとも変更を加える必要がありますか。うまく設定されていれば、構文解析に少し迷っています。私は過去にポッドキャストでGDATAXMLを使用しましたが、アプリ内のPLISTとどのように関連するかわかりません。

4

4 に答える 4

5

plist を配列または辞書にロードする場合は、次のメソッドを使用します。

NSArray * myArray = [NSArray arrayWithContentsOfFile: <plist-file-path>];

NSDictionary * myDictionary = [NSDictionary dictionaryWithContentsOfFile: <plist-file-path>];

Xcode で plist を作成するには、[ファイル] - > [新規]を選択し、[リソース]セクションから [プロパティ リスト] テンプレートを選択します。その後、プロパティ リスト エディターが表示されるので、手動でコードを作成する必要はありません。

于 2012-08-16T14:04:31.247 に答える
1

plist から xml を解析しようとしないでください。

NSDictionary代わり に plist を渡す必要があります。

NSString *pathToPlist = [NSString stringWithFormat:@"%@/your_plist_file.plist",[[NSBundle mainBundle]resourcePath]];
NSDictionary *plistDictionary = [NSDictionary dictionaryWithContentsOfFile:pathToPlist];

//now you can access the keys and values:
for (NSString *key in plistDictionary) 
    NSLog(@"key = %@ and value = %@", key, [plistDictionary objectForKey:key]);

//or pass all values to an array:
NSArray *valArray = [plistDictionary allValues];
于 2012-08-16T14:15:34.077 に答える
1

スウィフト 3 では:

if let path = Bundle.main.path(forResource: "FileName", ofType: "plist"), 
   let dict = NSDictionary(contentsOfFile: path) as? [String: AnyObject] {
    // use swift dictionary as normal
}

最初のノードが配列の場合、次のような配列を使用できます (この場合、配列にはディクショナリ要素が含まれます)。

if let path = Bundle.main.path(forResource: "FileName", ofType: "plist"),
   let array = NSArray(contentsOfFile: path) as? [Dictionary<String, Any>] {
    // use swift array as normal
}
于 2017-04-13T14:25:11.420 に答える
-4

を使用しNSXMLParserます。ドキュメントはこちらです。

NSDictionary基本的にファイルの中身を取得します。次に、それを使用して処理します

[aDictionary objectForKey:@"foo"];
于 2012-08-16T14:09:45.533 に答える