我最近将我的应用程序从iOS 8.3更新到iOS 9.在使用代码修复各种错误后,我设法编译应用程序并运行它,当我注意到以下问题.
当我执行segue点击时,例如,UIButton,加载了segue的视图会出现一个模态视图的动画(从底部滑动直到它到达顶部),但在故事板中,segue是Show (e.g. Push).此外,导航控制器的后退按钮不再出现.
控制台在执行segue时打印出来:
Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UISearchController: 0x7ffde14866b0>)
这个问题似乎只出现在一个视图中,当加载其他视图时,我试图将其他视图设置为初始视图控制器并且所有视图都有效.
我正在使用JSON将对象保存到核心数据中,我使用for循环(假设我调用了此setup函数.因为用户可能会停止此循环,保存在核心数据中的对象将是部分的.用户可以重新启动此setup功能,重新启动解析和将对象保存到核心数据的过程.
现在,如果我重新启动,我将在核心数据中获得重复的对象setup().该对象具有一个属性id.
我认为我可以获取最初可能已经存在于核心数据中的第一个对象,将它们保存到一个数组(一个自定义类型),并测试每个新对象以添加到核心数据(如果已存在的那个具有相同的数据)id.使用的代码如下:
if !existingCards.isEmpty {
for existingCard in existingCards {
if id == existingCard.id {
moc.deleteObject(existingCard)
println("DELETED \(existingCard.name)")
}
}
}
...
// "existingCards is the array of object fetched previously.
// Code to save the object to core data.
Run Code Online (Sandbox Code Playgroud)
实际上,应用程序返回
EXC_BAD_ACCESS(代码= 1,地址0x0)
有没有更简单的方法来实现我的目的或我应该修复什么来使我的代码工作?我很新,我无法想出其他解决方案.主要目的是删除重复的核心数据,BTW.