0
dictionaryOfWebsites = [[NSMutableDictionary alloc] init];
[dictionaryOfWebsites setObject:@"http://www.site1.com" forKey:@"Site1"];
[dictionaryOfWebsites setObject:@"http://www.site2.com" forKey:@"Site2"];
[dictionaryOfWebsites setObject:@"http://www.site3.com" forKey:@"Site3"];
[dictionaryOfWebsites setObject:@"http://www.site4.com" forKey:@"Site4"];

上は私の辞書です。UITableViewCell のテキストに「Site1」と表示され、サブテキストに URL が含まれるテーブルビューが必要です。

私はこれが私にすべての鍵を手に入れることを知っています

NSArray *keys = [dictionaryOfWebsites allKeys];

// values in foreach loop
for (NSString *key in keys) {
    NSLog(@"%@ is %@",key, [dict objectForKey:key]);
}

あなたは助けていただければ幸いです

私のアプローチが最善の方法ではない場合は、あなたの推奨事項から学ぶことができるようにお知らせください。

4

2 に答える 2

3

試す

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return [[dictionaryOfWebsites allKeys] count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Initialize cell of style subtitle
    NSArray *keys = [[dictionaryOfWebsites allKeys]sortedArrayUsingSelector:@selector(compare:)];
    NSString *key = keys[indexPath.row];

    cell.textLabel.text = key;
    cell.detailTextLabel.text = dictionaryOfWebsites[key];

    return cell;
}

編集:これらの種類の表現には辞書の配列を用意することをお勧めします。

各ディクショナリには、タイトルとサブタイトルの 2 つのキーと値のペアがあります。

self.dataArray = [NSMutableArray array];
NSDictionary *dict = @{@"Title":@"Site1",@"Subtitle":@"http://www.site1.com"};
[dataArray addObject:dict];
//Add rest of the dictionaries to the dataArray


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return [self.dataArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Initialize cell of style subtitle

    NSDictionary *dict = self.dataArray[indexPath.row];
    cell.textLabel.text = dict[@"Title"];
    cell.detailTextLabel.text = dict[@"Subtitle"];

    return cell;
}
于 2013-04-29T15:04:23.667 に答える
0

あなたは試すことができます:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
 //cell initialization code
 NSString *title = [keys objectAtIndex:indexPath.row];
 cell.textLabel.text = title;
 cell.detailTextLabel.text = [dictionaryOfWebsites objectForKey:title];

 return cell;
}

その場合、キー配列をプロパティとして宣言します。

于 2013-04-29T15:08:59.397 に答える