如果一个页面拥有一个 NSFetchedResultsController 的引用,那么在这个界面将要结束时,一定要 remove 它的 observer

- (void)dealloc {
//...
[[NSNotificationCenter defaultCenter] removeObserver:self.fetchedResultsController];
_fetchedResultsController.delegate = nil;
[_fetchedResultsController release];
[super dealloc];
}

为什么呢?

看下崩溃日志(友盟统计捕获的崩溃日志)

2014-03-26 17:39:17.128 XiaoJiZhuoMi[13394:90b] Umeng: -[UIButton controllerWillChangeContent:]: unrecognized selector sent to instance 0xce92db0
(null)
(
0 CoreFoundation 0x01daa1e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x041fb8e5 objc_exception_throw + 44
2 CoreFoundation 0x01e47243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x01d9a50b ___forwarding___ + 1019
4 CoreFoundation 0x01d9a0ee _CF_forwarding_prep_0 + 14
5 CoreData 0x03fda640 -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:] + 2080
6 Foundation 0x0395b049 __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke + 40
7 CoreFoundation 0x01e05f04 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
8 CoreFoundation 0x01d5defb _CFXNotificationPost + 2859
9 Foundation 0x03894e41 -[NSNotificationCenter postNotificationName:object:userInfo:] + 98
10 CoreData 0x03edda13 -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] + 83
11 CoreData 0x03f7cfaf -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] + 367
12 CoreData 0x03ed8eb8 -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 2152
13 CoreData 0x03edc2fc -[NSManagedObjectContext save:] + 140 ...

当 [NSManagedObjectContext save:] 后,会发送一个通知,这时与之绑定的 NSFetchedResultsController,拿到通知后,负责给它的代理更新页面(或其他)。而如果持有 NSFetchedResultsController 的页面已经被销毁,及 NSFetchedResultsController 已经被 release,那么它收到通知会怎么办?只有崩溃(如崩溃日志第一行所示)。

iOS: crush when save Core Data的更多相关文章

  1. iOS开发过程中使用Core Data应避免的十个错误

    原文出处: informit   译文出处:cocoachina Core Data是苹果针对Mac和iOS平台开发的一个框架,主要用来储存数据.对很多开发者来说,Core Data比较容易入手,但很 ...

  2. IOS 数据存储之 Core Data详解

    Core Date是ios3.0后引入的数据持久化解决方案,它是是苹果官方推荐使用的,不需要借助第三方框架.Core Date实际上是对SQLite的封装,提供了更高级的持久化方式.在对数据库操作时, ...

  3. IOS 数据存储之 Core Data具体解释

    Core Date是ios3.0后引入的数据持久化解决方式,它是是苹果官方推荐使用的.不须要借助第三方框架.Core Date实际上是对SQLite的封装.提供了更高级的持久化方式.在对数据库操作时, ...

  4. 《驾驭Core Data》 第一章 Core Data概述

    <驾驭Core Data>系列教程综合了<Core Data for iOS>,<Learning Core Data for iOS>,<Core Data ...

  5. 使用Core Data应避免的十个错误

    原文:Avoiding Ten Big Mistakes iOS Developers Make with Core Data   http://www.cocoachina.com/applenew ...

  6. Getting Started with Core Data

    Getting Started with Core Data Getting Started with Core Data Coreframework支持创建对象模型封装你的应用数据和逻辑满足MVC设 ...

  7. Core Data 入门

    1. 基本概念 Core Data是一种被称为对象关系映射(Object-Relational Mapping,ORM)技术的实现. Core Data 架构图如下: 五个概念: (1)数据模型(Da ...

  8. ios开发:Core Data概述

    Core Data 概述 2005年的四月份,Apple 发布了 OS X 10.4,在这个版本中 Core Data 框架发布了.Core Data本身既不是数据库也不是数据库访问框架.相反,Cor ...

  9. iOS 数据持久化(3):Core Data

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...

随机推荐

  1. 【神经网络】Reducing the Dimensionality of Data with Neural Networks

    这篇paper来做什么的? 用神经网络来降维.之前降维用的方法是主成分分析法PCA,找到数据集中最大方差方向.(附:降维有助于分类.可视化.交流和高维信号的存储) 这篇paper提出了一种非线性的PC ...

  2. tf.placeholder

    tf.placeholder placeholder( dtype, shape=None, name=None ) 功能说明: 是一种占位符,在执行时候需要为其提供数据 参数列表: 参数名 必选 类 ...

  3. BAT-局域网内在线电脑IP

    相关资料:朋友发来的,来源不明. 问题现象:有个朋友问我都在一个内网中,电脑A没有显示器,怎么找到它的IP. 问题处理: 1.登陆路由器查看IP在线情况. 2.用BAT文件显示出在线IP. 显示局域网 ...

  4. JAVA-JSP内置对象之request获得所有的参数名称

    相关资料:<21天学通Java Web开发> 获得所有的参数名称1.request对象的getParameterNames()方法可以获得所有的参数名称. RequestForm2.jsp ...

  5. 3. 支持向量机(SVM)拉格朗日对偶性(KKT)

    1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...

  6. sql分割字符串

    DECLARE @str NVARCHAR(MAX); SET @str = 'aa|bb|cc|dd'; ) SET @str += '|' BEGIN SET @n = LEFT(@str, CH ...

  7. 大数据 Hive 简介

    第一部分:Hive简介 什么是Hive •Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. •本质是将SQL转换为MapReduce程序 ...

  8. WriteableBitmap/BitmapImage/MemoryStream/byte[]相互转换

    1 WriteableBitmap/BitmapImage/MemoryStream/byte[]相互转换 2012-12-18 17:27:04|  分类: Windows Phone 8|字号 订 ...

  9. JQUERY的给Check全选功能

    //给Checkbox提供全选功能 $("#checkall").click(function(){ if(this.checked){ $("input[name='c ...

  10. [git]使用vimdiff做git代码比较

    #git 如何实现vimdiffgit config --global diff.tool vimdiff git config --global difftool.prompt false git ...