2012-02-13 3 views
4

Это кажется странным, поскольку я не могу его решить и застрял над ним. Я использую раскадровку, чтобы перемещаться между tableview и detailview. Он отлично работал, когда я передавал один объект (NewsRecord) из моего класса tableview (TopStoriesViewController) в мой класс подробностей (DetailNewsViewController). Но теперь мне нужно передать массив объектов (NewsRecord) при переходе в класс детали вместо одного (NewsRecord) объекта. Но когда я создаю NSArray * в моем подробном классе и пытаюсь получить к нему доступ в моем классе tableview в методе prepareForSegue, используя объект класса detail, он дает следующую ошибку: свойства «элементы» не найдены на объекте типа «DetailNewsViewController * 'во время компиляции. items - объект NSArray, который получает его содержимое из «записей», который также является NSArray в классе TopStoriesViewController.Недвижимость не найдена на объекте типа

Мой вопрос: почему я могу получить доступ к getNewsDetails DetailNewsViewController в TopStoriesViewController, а не в элементах.

Мои классы являются - TopStoriesViewController.m

#import "DetailNewsViewController.h" 

    some code here.... 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 
     if ([[segue identifier] isEqualToString:@"ShowDetailedNews"]) { 
     DetailNewsViewController *detailNewsVC = [segue destinationViewController]; 
     [segue.destinationViewController setHidesBottomBarWhenPushed:YES]; 
     NSInteger indexForNewsSelectedFromTBV = [[self.tableView indexPathForSelectedRow] row]; 
     [detailNewsVC setGetNewsDetails:[entries objectAtIndex:indexForNewsSelectedFromTBV]]; //This is working fine... 
     detailNewsVC.items=entries; //Error is occurring here... 
    } 
    } 

DetailNewsViewController.h

#import "NewsRecord.h" 
    @interface DetailNewsViewController : UIViewController { 
     NewsRecord *getNewsDetails; 

     some other declarations... 

     NSArray *items; 
    } 
@property(nonatomic,retain) NewsRecord *getNewsDetails; 
@property(nonatomic,retain) NSArray *items; 
@end 

DetailNewsViewController.m

#import "DetailNewsViewController.h" 
@synthesize getNewsDetails,items; 

NewsRecord.h

@interface NewsRecord : NSObject { 
     NSString *newsTitle; 
     NSString *newsDescription; 
    } 
    @property(nonatomic,retain) NSString *newsTitle; 
    @property(nonatomic,retain) NSString *newsDescription; 
    @end 
+0

Try, очистить проект затем строить заново – Krrish

+0

очистить свой проект, если Даты не работают рестарт вы Xcode .... –

+0

@Krrish , @ Inder Kumar Rathore: попробовал очистить и удалить полученные данные ... Все еще не получилось разрешено – southpark

ответ

0

Вы должны попытаться использовать явно сеттер для элементов:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"ShowDetailedNews"]) 
    { 

    DetailNewsViewController *detailNewsVC = [segue destinationViewController]; 
    ... 
    [detailNewsVC setItems:entries]; 

    } 
} 
+0

Спасибо за ответ. Мой массив элементов заполняется массивом объектов. Мне кажется, это сработает. Но не могу ли вы объяснить, почему xcode выдает предупреждение? DetailNewsViewController может не отвечать на «setItems», тогда как раньше, когда я использовал setGetNewsDetails для установки своего объекта, мне не было предупреждений. Любой, почему detailNewsVC.items выдает ошибку. – southpark

+0

Почему это было приостановлено? – cwiggo

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