Ios 财产';toDoItem';在类型为';XYZAddToDoItemViewController
我现在正努力学习本教程 我能够按照说明进行操作并得到建议的结果,但从第105页开始,我在“添加新项目”上遇到了错误。我让应用程序浏览现有结果,并响应“取消”和“完成”按钮以转到另一个视图 我在这两种方法上遇到了错误: 在里面 xyzadToDoItemViewController.m -语义问题 在类型为“XYZAddToDoItemViewController*”的对象上找不到属性toDoItemIos 财产';toDoItem';在类型为';XYZAddToDoItemViewController,ios,objective-c,oop,Ios,Objective C,Oop,我现在正努力学习本教程 我能够按照说明进行操作并得到建议的结果,但从第105页开始,我在“添加新项目”上遇到了错误。我让应用程序浏览现有结果,并响应“取消”和“完成”按钮以转到另一个视图 我在这两种方法上遇到了错误: 在里面 xyzadToDoItemViewController.m -语义问题 在类型为“XYZAddToDoItemViewController*”的对象上找不到属性toDoItem - (void) prepareForSegue:(UIStoryboardSegue *)se
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if(sender != self.doneButton) return;
if(self.textField.text.length > 0){
self.toDoItem = [[XYZToDoItem alloc] init];
self.toDoItem.itemName=self.textField.text;
self.toDoItem.completed= NO;
}
}
在XYZToDoListViewController.m中使用此方法
语义问题
错误:在类型为“XYZAddToDoItemViewController*”的对象上找不到属性“toDoItem”
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if(sender != self.doneButton) return;
if(self.textField.text.length > 0){
self.toDoItem = [[XYZToDoItem alloc] init];
self.toDoItem.itemName=self.textField.text;
self.toDoItem.completed= NO;
}
}
但是,如果我将XYZAddToDoItemViewController更改为XYZToDoListViewController,则此错误将消失
-(IBAction) unwindToList:(UIStoryboardSegue *)segue
{
XYZAddToDoItemViewController *source = [segue sourceViewController];
XYZToDoItem *item = source.toDoItem;
if(item != nil){
[self.toDoItems addObject:item];
[self.tableView reloadData];
}
}
我以前从未尝试过Objective-C编程,所以请原谅我愚蠢的错误。这是指向我的项目文件夹的链接
您需要
xyzadToDoItemViewController
才能拥有@属性(非原子)XYZToDoItem*toDoItem代码>在它的头文件中。我发现了一些错误:1)ToDoList/XYZAddToDoItemViewController。m:33:22:ARC2)ToDoList/XYZAddToDoItemViewController不允许将Objective-C指针隐式转换为“int*”。m:33:20:从“XYZToDoItem*”分配给“int*”的指针类型不兼容3)ToDoList/xyzadToDoItemViewController.h:13:24:未知类型名称“XYZToDoItem”我通过在xyzadToDoItemViewController的方法文件(xyzadToDoItemViewController.m)而不是(xyzadToDoItemViewController.h)文件中声明属性,排除了第一个错误,但第二个错误仍然存在。正如我在问题中提到的,我还在XYZToDoListViewController.m中将“xyzadDoItemViewController更改为XYZToDoListViewController”。现在它按预期工作。感谢您帮助我们朝着正确的方向前进。