0

私はここで私の知恵の終わりにいます、私にあなたの美しい人々を助けてください!

私の難問はこれです:

私は100の薬のリストを持っています。それぞれに名前があり、それぞれにURLが関連付けられており、それぞれが1〜8のセクションにあります。テーブルビューで薬名のリストを作成する必要があります。特定の薬剤を選択する場合、薬剤名、そのセクション、およびそのURLを別のViewControllerに渡す必要があります。

すべてのガビンを実装して別のコントローラーに渡す方法、テーブルビューを設定する方法などを知っています。プログラム内でアクセスできるようにデータをplistファイルに整理する方法と、各薬剤をそのURLにリンクする方法がわかりません。およびセクション。

何か案は?iveは、過去7時間の最高の期間、辞書、配列、オブジェクトをいじり回してきました。すぐに仕分けしないと泣くかもしれないと思います!

どうもありがとう、

ルーシー

4

1 に答える 1

0

これを行う方法は次のとおりです。

<?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>
   <dict>
     <key>name</key><string>Drug name</string>
     <key>url</key> <string>http://www.urltodrug.com/Drug%20name</string>
     <key>section</key> <integer>5</integer>
   </dict>
</array>
</plist>

を追加するだけ<dict>で完了です。

すべてを配列に入れるには:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Drugs" ofType:@"plist"]; 
self.dataArray = [NSArray arrayWithContentsOfFile:path]; 

セクションと薬剤名で配列をソートするには:

NSArray *sortedArray = [self.dataArray sortedArrayUsingSortDescriptors:@[
    [NSSortDescriptor sortDescriptorWithKey:@"section" ascending:YES],
    [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]
]];

配列を縮小して名前だけを表示するには:

NSArray *namesArray = [sortedArray valueForKeyPath:@"name"]; 

NSDictionary「Key-Value-Coding」の力へようこそ!

セルに名前を表示するには:

NSDictionary *dataDict = [self.dataArray objectAtIndex:indexPath.row];
cell.textLabel.text = [dataDict objectForKey:@"name"]; 
于 2013-03-24T21:36:29.137 に答える