objective-c - 在类型的对象上找不到属性

标签 objective-c ios5 xcode4.2 uistoryboard

这看起来很奇怪,因为我无法解决它并坚持下去。我正在使用 Storyboard在表格 View 和详细 View 之间导航。当我将单个 (NewsRecord) 对象从我的 TableView 类 (TopStoriesViewController) 传递到我的详细信息类 (DetailNewsViewController) 时,它工作正常。但是现在我需要在移动到详细信息类而不是单个 (NewsRecord) 对象时传递一个 (NewsRecord) 对象数组。但是当我在我的细节类中创建一个 NSArray * 并尝试使用细节类的对象在我的 prepareForSegue 方法中的 TableView 类中访问它时,它会出现以下错误---在类型为“DetailNewsViewController * 的对象上找不到属性“项目” ' 在编译时。 items 是一个 NSArray 对象,它从“条目”中获取其内容,这也是 TopStoriesViewController 类中的一个 NSArray。

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

我的类(class)如下 - 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;

新闻记录.h

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

最佳答案

你应该尝试明确地使用 items 的 setter:

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

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

     }
} 

关于objective-c - 在类型的对象上找不到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9258369/

相关文章:

objective-c - 使用 *.nib 文件显示模式窗口

ios - 状态栏不隐藏 - iOS 7

iphone - 将“设置首选项”的“键盘类型”更改为带小数点的数字键盘

javascript - 未触发 HTML5 iOS volumechange 事件

iphone - 此代码是否适用于iTunes购买的AAC格式?

iphone - 如何删除在 iOS 上的 HTML5 网络应用程序的初始屏幕和第一页之间出现的白页

objective-c - 如何使用 iOS 5 中的 Twitter 框架获取用户的 Twitter 个人资料信息?

Objective-C 二进制表达式的无效操作数

ios - 在 Xcode 4.2.1 中,我应该使用什么来代替基于 Window 的应用程序模板?

xcodebuild - 升级到 XCode 4.2 后 xcactivitylog 中的版本不匹配