Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 财产';toDoItem';在类型为';XYZAddToDoItemViewController_Ios_Objective C_Oop - Fatal编程技术网

Ios 财产';toDoItem';在类型为';XYZAddToDoItemViewController

Ios 财产';toDoItem';在类型为';XYZAddToDoItemViewController,ios,objective-c,oop,Ios,Objective C,Oop,我现在正努力学习本教程 我能够按照说明进行操作并得到建议的结果,但从第105页开始,我在“添加新项目”上遇到了错误。我让应用程序浏览现有结果,并响应“取消”和“完成”按钮以转到另一个视图 我在这两种方法上遇到了错误: 在里面 xyzadToDoItemViewController.m -语义问题 在类型为“XYZAddToDoItemViewController*”的对象上找不到属性toDoItem - (void) prepareForSegue:(UIStoryboardSegue *)se

我现在正努力学习本教程

我能够按照说明进行操作并得到建议的结果,但从第105页开始,我在“添加新项目”上遇到了错误。我让应用程序浏览现有结果,并响应“取消”和“完成”按钮以转到另一个视图

我在这两种方法上遇到了错误: 在里面 xyzadToDoItemViewController.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;
  }

}
在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”。现在它按预期工作。感谢您帮助我们朝着正确的方向前进。