2012-02-13 91 views
4

属性这似乎只是奇怪,因为我无法解决它并卡住了它。我正在使用故事板在tableview和detailview之间导航。当我从我的tableview类(TopStoriesViewController)传递一个单独的(NewsRecord)对象到我的详细类(DetailNewsViewController)时它工作的很好。但是现在我需要传递一个(NewsRecord)对象的数组,而不是单个(NewsRecord)对象。但是,当我在我的详细类中创建一个NSArray *并尝试在使用detail类的对象的prepareForSegue方法在我的tableview类中访问它时,它会给出以下错误---属性'items'在类型为'DetailNewsViewController * '在编译时。 items是一个NSArray对象,它从'entries'中获取它的内容,这也是TopStoriesViewController类中的一个NSArray。找不到对象类型

我的问题是为什么我能够在TopStoriesViewController中访问DetailNewsViewController的getNewsDetails,而不是项目。

我的类如下 - 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

尝试,清理项目,然后再次 – Krrish 2012-02-13 10:11:31

+0

建立清洁您的项目,如果你重新启动Xcode中的DAT没有工作.... – 2012-02-13 10:34:51

+0

@Krrish ,@ Inder Kumar Rathore:尝试清理并删除派生的数据...仍然没有得到解决 – southpark 2012-02-13 10:38:05

回答

0

你应该尽量明确地使用二传手的项目:

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

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

    } 
} 
+0

感谢您的回答。我的物品数组不会填入objects数组。它力量打击我这将工作。但你可以推理我为什么xcode会抛出警告“DetailNewsViewController可能不会响应'setItems'”,而之前当我使用“setGetNewsDetails”来设置我的对象时我没有给出任何警告。任何为什么detailNewsVC.items会引发错误。 – southpark 2012-02-14 05:50:12

+0

这是为什么downvoted? – cwiggo 2015-05-14 09:31:49

相关问题