2013-04-23 2 views
0

Я написал приложение, которое использует основные данные, и оно отлично работает как на симуляторе, так и на устройствах. Затем я создал новую ветку git проекта и отлично работает на симуляторе, но не на устройствах.Основные данные fetchedresultscontroller возвращает пустые только на устройстве

Вот код fetchedResultsController

-(NSFetchedResultsController *)fetchedResultsController{ 
    if (_fetchedResultsController != nil) { 
     NSLog(@"Fetched Controler : %@", _fetchedResultsController); 
     return _fetchedResultsController; 
    } 
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Membership" inManagedObjectContext:managedObjectContext]; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userdata.email == %@", [[NSUserDefaults standardUserDefaults] stringForKey:@"email"]];  
    NSSortDescriptor *sort1 = [[NSSortDescriptor alloc]initWithKey:@"type" ascending:NO]; 
    NSSortDescriptor *sort2 = [[NSSortDescriptor alloc]initWithKey:@"membership_name" ascending:YES]; 
    NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:sort1,sort2, nil]; 
    [fetchRequest setEntity:entity]; 
    [fetchRequest setPredicate:predicate]; 
    [fetchRequest setSortDescriptors:sortDescriptors]; 

    _fetchedResultsController = [[NSFetchedResultsController alloc]initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"type" cacheName:nil]; 
    return _fetchedResultsController; 
} 

Тогда Принести объекты в поле зрения будут появляться.

-(void)viewWillAppear:(BOOL)animated{ 
    NSError *error; 
    [[self fetchedResultsController]performFetch:&error]; 
    [self.tableView reloadData]; 
} 

managed object context передается от appDelegate к просмотру входа, то из LoginView на второй взгляд. На втором месте, где возникают проблемы

Единственное, что я могу придумать, это то, что что-то происходит с ограничениями памяти на устройстве или, может быть, проблемой параллелизма?
Если есть какие-либо темы, созданные, я не хотел этого делать.

+1

Вы можете проверить, есть ли второй вид в другом потоке: NSLog (@ "% @", [NSThread currentThread]); – user523234

+0

вы установили адрес электронной почты в настройках по умолчанию? –

+0

Спасибо, пользователю523234 это не помогло в этом случае, но это было частью моего вопроса, и я обязательно буду использовать это в будущем. – whitehead1415

ответ

1

кажется, что ваш предикат

NSPredicate *predicate = 
    [NSPredicate predicateWithFormat:@"userdata.email == %@",  
    [[NSUserDefaults standardUserDefaults] stringForKey:@"email"]]; 

возвращается пустой набор. Запишите значение этого пользователя по умолчанию, и я убежден, что это будет устранено.

+0

Спасибо, что указали это! Nsuserdefault чувствителен к регистру. – whitehead1415

Смежные вопросы