我新的iOS开发,我想创建一个简单的测试应用程序,允许用户记录,并在他们的药柜编辑他们的药丸。开卷Segue公司无参数错误
我使用的是ios 6.1,arc和segues。
背景的错误:
,因此用户在他们的药柜药清单,他拿起一个和SEGUE将他带到一个视图控制器,让他谈丸的信息。然后,他可以选择编辑信息,让他看到另一个视图控制器,该视图控制器显示他可以编辑的文本框中的所有当前信息,然后单击一个保存按钮,该按钮可启动原始药品柜的放松继续。
我得到的错误是这样的。用户可以编辑信息并成功保存并弹出到机柜。但后来当他再次进入编辑避孕药,我得到的错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString appendString:]: nil argument'
我做了一些挖掘,我发现了什么事情。在unwind segue方法中,我成功设置了pill的属性以匹配editPillView控制器文本字段中的文本。例如,我有一颗药丸,它属于杰伊。但是,我编辑它并说它属于Raf。使用断点,我可以在MedicineCabinetViewController的unwind segue方法中看到从Jay到Raf的字符串更改。但是一旦unwind segue完成后,我发现在某些时候,苹果代码中的字符串被设置为零(可能是因为arc正在释放内存,因为EditPillViewController不再需要,并且pill的owner属性变成空指针)。然后,当用户再次点击药丸时,pillInfoViewController正试图使用空指针和BOOM。
我已经尝试了许多解决方案,以尽量保持串留RAF如使用NSString的复制方法。有任何想法吗?
这是一个完美的答案!谢谢!我使用强引用来修复它。 –