Динамический табличный вид источника данных - PullRequest
0 голосов
/ 21 декабря 2011

Привет, я создаю приложение, в котором я использую таблицу динамического представления. Бит, у меня проблема с NSManged Objects, может кто-нибудь узнать, что происходит не так.

найдите код ниже для вашей справки.

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return ([self.controlSelections count]);
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"plainCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    id controlOption = [self.controlSelections objectAtIndex:indexPath.row];
    NSString *option = nil;

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

    if ([controlOption isKindOfClass:[NSString class]])
    {
        option = (NSString *)controlOption;
        cell.textLabel.text = option;
    }
    else if ([controlOption isKindOfClass:[NSDictionary class]])
    {
        NSDictionary *optionDict = (NSDictionary *)controlOption;
        option = [optionDict valueForKey:self.listKey];
        cell.textLabel.text = option;
    }
    else if ([controlOption isKindOfClass:[NSManagedObject class]])
    {
        NSManagedObject *context=[self NSManagedObject];
        NSManagedObject  *optionData = (NSManagedObject  *)controlOption;
        option = [optionData valueForKey:self.listKey];
        cell.textLabel.text = option;
    }

    return cell;
}

проблема в следующем коде, он не принимает NSMangedObject:

else if ([controlOption isKindOfClass:[NSManagedObject class]])
        {
            NSManagedObject *context=[self NSManagedObject];
            NSManagedObject  *optionData = (NSManagedObject  *)controlOption;
            option = [optionData valueForKey:self.listKey];
            cell.textLabel.text = option;
        }

любая помощь будет оценена.заранее спасибо.

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

импорт в файл Prefix.pch

0 голосов
/ 21 декабря 2011

Попробуйте что-нибудь в этих строках -

else if ([controlOption isKindOfClass:[NSManagedObject class]])
{
    NSManagedObjectContext *context=[self managedObjectContext]; //I guess you have MOC somewhere.

    NSEntityDescription *entityDesc = [NSEntityDescription entityForName:[optionData valueForKey:self.listKey] inManagedObjectContext: context];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:entityDesc];

    NSError *error;
    NSArray *objects = [context executeFetchRequest:request error:&error];

    cell.textLabel.text = [objects objectAtIndex:0]; //for eg   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...