我一直关注Apple的Start Developing iOS Apps Today指南并遇到了问题。我不是新手开发者,但我是iOS开发新手,我不明白为什么我会出错。
我有一个名为STRAddTodoViewController.h的文件,其中包含以下内容
#import <UIKit/UIKit.h>
#import "STRTodo.h"
@interface STRAddTodoViewController : UIViewController
@property STRTodo *todoItem;
@end
在我的STRTodosViewController.m中,我有:
- (IBAction)unwindToList:(UIStoryboardSegue *)segue {
STRAddTodoViewController *addTodo = [segue sourceViewController];
STRTodo *item = addTodo.todoItem;
if (item != nil) {
[self.todos addObject:item];
[self.tableView reloadData];
}
}
我收到的错误是:
Property 'todoItem' not found on object of type 'STRAddTodoViewController *'
出于某种原因,我在STRAddTodoViewController中的公共变量没有被我的其他控制器拿起,我不能为我的生活找出原因。有线索吗?
编辑:大家道歉,似乎我的项目中有两个STRAddTodoViewController副本,它在构建时正在阅读旧副本。这么简单的错误,我现在觉得自己像个大笨蛋,但感谢所有帮助过我的人。
答案 0 :(得分:0)
尝试在#import "STRTodo.h"
标头文件中将@class STRTodo;
替换为STRAddTodoViewController.h
,并在#import "STRTodo.h"
实施文件中添加STRAddTodoViewController.m
。
因为如果#import "STRTodo.h"
头文件中已经#import "STRAddTodoViewController.h"
和STRTodoViewController.h
,编译器会发现#import "STRTodo.h"
太多而感到困惑。
有帮助吗?
答案 1 :(得分:0)
你有:
@property STRTodo *todoItem;
这意味着STRTodo确实是一个类。您的财产需要更多标识符。
@property (nonatomic, strong) STRTodo *totoItem;
除此之外,在-(id) init
方法中,您还应该实例化该属性。
- (id) init{
if (self = [super init]{
self.todoItem = [[STRTodo alloc]init];
}
return self;
}
希望这有帮助。
编辑:没关系,似乎你找到了解决方案。