2014-11-12 6 views
1

Я извлекаю данные из основных данных и пытаюсь напечатать имя объекта по адресу valueForKey. Это никогда не вызывало у меня никаких проблем, однако при получении прямого объекта, но объект, который я получаю, связан с отношением NSSet.Ошибка формата NSString - {(String)}

Когда я распечатываю нужное значение, оно отображается в этом формате.

{(
    Bob Marley 
)} 
{(
    Jack Daniels 
)} 
etc... 

Я использовал NSString stringWithFormat, я попытался componentsSeperatedByString, однако ни одна из этих работ. Если задан другой вопрос, я не могу найти его здесь. Проблема идентична и в UILabel. Я не печатаю его.

Надеюсь, это простая проблема.

Мой код для получения значения.

//Company * company 
//Employee is related in a many-many relationship 
NSString * name = (NSString *)[self.company.contractor valueForKey:@"contractorName"]; 
     NSLog(@"Name: %@", name); 

Спасибо.

+0

вы должны использовать управляемый объект для извлечения данных из основных данных, которые помогут – Smile

+0

Я использую контроллер fetchedResults, чтобы получить результаты , как будет использоваться метод managedObject? Мне никогда не приходилось использовать его, так как fetchedResults получают мне то, что мне нужно в прошлом. –

+0

вы получаете массив внутри массива {( Bob Marley )} где {(Arry)} –

ответ

2

self.company.contractor - NSArray.

Так что вам нужно сделать

NSString * name = (NSString *)[[[self.company.contractor allObjects] firstObject] valueForKey:@"contractorName"]; 

Также смотрите мои previous answer

+0

Извините, но это неверно. self.company.contractor - это NSSet, а не NSArray. Поэтому firstObject не работает. Это сообщение при попытке вашего решения: «Нет видимого @interface для« NSSet »объявляет селектор« firstObject »« –

+0

ах, вы правы, я отредактировал – l0gg3r

+0

Мой добрый человек, я должен вам выпить. –

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