1
I Want to load the Table data from a NSDictionary object. This is how i did below function to fetch numberofRows. how to set the value for the cell from NSDictionary object ?

私に解決策を提供してください、私はObjective Cプログラミングの初心者です

以下は、coredata からフェッチしている NSDictionary オブジェクト「obj」です。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    NSEntityDescription *entity = [NSEntityDescription  entityForName:@"Pictures" inManagedObjectContext:managedObjectContext];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:entity];
    [request setResultType:NSDictionaryResultType];
    [request setReturnsDistinctResults:YES];
    [request setPropertiesToFetch:@[@"title"]];

    // Execute the fetch.
    NSError *error;

  objects = [managedObjectContext executeFetchRequest:request error:&error];
    if (objects == nil) {
        // Handle the error.
    }
    for( obj in objects ) {
        NSLog(@"Title: %@", [obj objectForKey:@"title"]);
    }

    return [objects count];
}

ここで、セルに NSdictionary object にあるタイトルを追加したいと思います。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }     

    return cell;
}
4

2 に答える 2

2

あなたはこのようにすることができます その仕事は私の友達かもしれません:-

- (void)viewWillAppear:(BOOL)animated
{
[self getdata];
[yourtable reloadData];

 [super viewWillAppear:animated];

}

-(void)getdata
{

 NSEntityDescription *entity = [NSEntityDescription  entityForName:@"Pictures" inManagedObjectContext:managedObjectContext];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:entity];
    [request setResultType:NSDictionaryResultType];
    [request setReturnsDistinctResults:YES];
    [request setPropertiesToFetch:@[@"title"]];

    // Execute the fetch.
    NSError *error;

  objects = [managedObjectContext executeFetchRequest:request error:&error];
    if (objects == nil) {
        // Handle the error.
    }
    for( obj in objects ) {
        NSLog(@"Title: %@", [obj objectForKey:@"title"]);
    }


}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return [objects count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

      cell.textlabel.text = [[objects objectatindex:indexpath.row] valueforkey@"title"];
    }     

    return cell;
}
于 2013-04-19T12:53:44.153 に答える
1

これを cellForRowAtIndexPath メソッドに入れます。

cell.textLabel.text = [[objects objectAtIndex:indexPath.row] valueForKey:@"title"];
于 2013-04-19T12:54:58.167 に答える