为什么我不能addUsersObject:(User *)值

时间:2013-01-30 03:51:19

标签: iphone ios core-data tableview

我有2个实体:事件和用户。

活动有很多用户。我有一个列出所有事件的tableview,当我点击一行时,我得到了这一行的托管对象。我将目标视图控制器的托管对象设置为此。一切正常,但我不能addUsersObject。没有代码提示。 像这样的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    Event *object = [self.fetchedResultsController objectAtIndexPath:indexPath];
    EventsViewController *eventsVC = [[EventsViewController alloc] init];
    eventsVC.event = object;
    [self.navigationController pushViewController:eventsVC animated:YES];
}

Event.h

@interface Event (CoreDataGeneratedAccessors)

- (void)addUsersObject:(User *)value;
- (void)removeUsersObject:(User *)value;
- (void)addUsers:(NSSet *)values;
- (void)removeUsers:(NSSet *)values;

在目标视图控制器中,当我执行[self.event add]时,我无法获得addUsersObject。我认为是因为我没有allocinit事件。但如果我这样做,我会创建一个新的事件对象。我需要选择行中的对象。

1 个答案:

答案 0 :(得分:0)

如何在event

中声明EventsViewController.h属性

您需要将其声明为Event类属性:

@property (nonatomic, strong) Event *event;

要使用Event类,您需要将头文件导入EventsViewController.h

#import "Event.h"

如果您的代码完成仍然无效,您可能需要删除项目的派生数据 - 关闭项目,然后转到管理器,选择项目,然后单击Derived旁边的删除...按钮数据。然后重新打开项目 - 索引完成后,您应该重新获得代码完成。