Перебор основных данных, передаваемых в представление - PullRequest
1 голос
/ 13 июля 2011

Я передаю данные в представление, используя этот метод:

nextViewController = [[AfricanSwallowViewController alloc] initWithNibName:@"AfricanSwallowView" bundle:nil];
((InstructionsViewController *)nextViewController).byTheHusk = byTheHusk;

Я пытаюсь перебрать значения в представлении, в которое передаётся byTheHusk.

Я пробовал нескольковерсии NSLog(@"%@", byTheHusk.name); и использование objectAtIndexPath и т. д. без удачи

Есть ли способ получить доступ к атрибутам записей объектов в структуре стиля петли while или for?

Самое близкое, что я могу получить:

NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:0];
NSLog(@"%@",[[managedObject valueForKey:@"name"] description]);

, что приводит к:

ByTheHusk[7880:207] (null)

Что означает, что есть 207 записей.Это правильно?и что ByTheHusk проходит правильно?

Я новичок во всем этом, так что спасибо за любую помощь !!!

Бо

Ответы [ 2 ]

0 голосов
/ 16 июля 2011

Я понял это с помощью некоторого образования, проб и ошибок, ошибок и ошибок.

Но я понял !!!!

NSMutableArray* annotations=[[NSMutableArray alloc] init];
// Save our fetched data to an array  
[self setEventArray: mutableFetchResults];  
[mutableFetchResults release];  
[request release]; 
//NSLog(@"%d",[eventArray count]);

for (int i = 0; i < [eventArray count]; i++) {
    //NSLog(@"%@",[[eventArray objectAtIndex:i] name]);

    CLLocationCoordinate2D theCoordinate;
    double latNum = [[[eventArray objectAtIndex:i] latitude] doubleValue];
    theCoordinate.latitude = latNum;
    double lonNum = [[[eventArray objectAtIndex:i] longitude] doubleValue];
    theCoordinate.longitude = lonNum;
    //-------------------------
    MyAnnotation* tempAnnotation=[[MyAnnotation alloc] init];
    tempAnnotation.coordinate=theCoordinate;
    tempAnnotation.title=[NSString stringWithFormat:@"%@",[[eventArray objectAtIndex:i] name]];
    tempAnnotation.subtitle=[NSString stringWithFormat:@"%@",[[eventArray objectAtIndex:i] name]];
    //-------------------------
    [mapView addAnnotation:tempAnnotation];
    [annotations addObject:tempAnnotation];
} 

Поместите это в массив и переверните его ... спасибо всем за руководство!

0 голосов
/ 14 июля 2011

Мне кажется, вы путаете объект NSManagedObjectContext с объектом NSManagedObject.

Этот сегмент кода:

nextViewController = [[AfricanSwallowViewController alloc] initWithNibName:@"AfricanSwallowView" bundle:nil];
((InstructionsViewController *)nextViewController).byTheHusk = byTheHusk;

... выглядит как попытка передать NSManagedObjectContext из одного контроллера представления в другой.Тем не менее, попытка каста, вероятно, отбрасывает вещи.Вероятно, он должен выглядеть следующим образом:

InstructionsViewController *nextViewController = [[AfricanSwallowViewController alloc] initWithNibName:@"AfricanSwallowView" bundle:nil];
nextViewController.byTheHusk = self.byTheHusk; //assuming that byTheHusk is a property of the current view controller. 

Я предполагаю, что InstructionsViewController - это контроллер табличного представления, использующий NSFetchedResultsController и настроенный для выборки из контекста управляемого объекта byTheHusk.

Если это так, то получение возврата null из этого кода:

NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:0];
NSLog(@"%@",[[managedObject valueForKey:@"name"] description]);

... вероятно, указывает, что fetchedResultsController не находит объектов при извлечении.В любом случае, он не будет регистрировать объект byTheHusk, а только первый экземпляр NSManagedObject, найденный при выборке.

ByTheHusk [7880: 207] (null)

Это означает, что имеется 207 записей.Это правильно?и что ByTheHusk проходит правильно?

Нет.В этом случае ByTheHusk - это имя приложения / библиотеки, а номера - это IIRC смещения линий и блоков в объектном файле.Они не имеют ничего общего с регистрируемым объектом.(null) просто означает, что оператор [[managedObject valueForKey:@"name"] description] не возвращает какой-либо объект.

Не уверен, в чем ваша проблема, но исправление первого бита кода выше поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...