加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 在对象’AddEventViewController’上找不到属性

发布时间:2020-12-14 17:11:48 所属栏目:百科 来源:网络整理
导读:在Developer Library的帮助下,我正在尝试使用EventKit和EventKitUI框架.我遇到了很早的障碍.我复制并粘贴了 code from the library found here.我在ViewController的导航栏中添加了一个名为’AddEventViewController’的视图控制器,我正在使用此代码调用它.
在Developer Library的帮助下,我正在尝试使用EventKit和EventKitUI框架.我遇到了很早的障碍.我复制并粘贴了 code from the library found here.我在ViewController的导航栏中添加了一个名为’AddEventViewController’的视图控制器,我正在使用此代码调用它.

- (IBAction)add:(id)sender {
AddEventViewController *addController = [[AddEventViewController alloc]
                                          init];
addController.delegate = self;
UINavigationController *navigationController = [[UINavigationController alloc]
                                                    initWithRootViewController:addController];
[self presentViewController:navigationController animated:YES completion: nil];

}

错误显示在行:addController.delegate = self;

此代码直接从库中复制.我正在使用Xcode 4.2和故事板,如果这可能会有所帮助.

更新:
这是AddEventViewController.h:

#import <UIKit/UIKit.h>

@interface AddEventViewController : UIViewController

@end

你要告诉我我错误地创建了这个ViewController吗?请解释为什么如果你这么好看就不“如何”?

解决方法

我看到Apple的例子在这里可能会让你感到困惑.首先,下载 iPhoneCoreDataRecipes的完整源代码(或至少在尝试理解此代码时引用它).

要真正了解这里发生了什么,您需要阅读“解雇呈现的视图控制器”一节,然后点击“使用委派与其他控制器通信”链接. (“一个代表团?”很奇怪….)

所以这就是发生了什么.呈现的视图有一个“委托”,它应该告诉“有趣”的东西.在这种情况下,“有趣”的东西是“嘿,我添加了一个食谱!”为了实现这一点,委托实现了一个协议,这意味着它承诺实现一些方法.在这种情况下,所需的方法是recipeAddViewController:didAddRecipe:.

AddViewController有一个委托属性,如下所示:

@property(nonatomic,assign) id <RecipeAddDelegate> delegate;

这只意味着委托必须符合指定的协议.委托本身表明它在其界面中这样做:

@interface RecipeListTableViewController : UITableViewController <RecipeAddDelegate,NSFetchedResultsControllerDelegate> {

请注意,这是因为@Yuras解释的原因而被标记为分配.但是如果您正在编写针对iOS 5的新代码,则应该使用weak而不是assign.如果取消分配引用的对象,则弱属性将自动设置为nil.这样更安全.没有悬空指针.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读