小编JCo*_*way的帖子

mergeChangesFromContextDidSaveNotification上的EXC_BAD_ACCESS

我们一直在尝试调试Core Data多上下文/线程问题,其中将Core Data保存通知合并到我们的主线程NSManagedObjectContext中偶尔会使应用程序崩溃.这导致约2%的应用会话崩溃,我们对如何解决这个问题感到茫然.我们非常感谢任何可能导致此次崩溃的指导或一般建议.

我们有一个Core Data设置,如下所示:

核心数据堆栈 注意这是从[MagicalRecord setupAutoMigratingCoreDataStack]创建的Magical Record v2.3中的默认核心数据堆栈

这是我们的应用程序崩溃的情况:

  1. HTTP请求返回JSON
  2. NSManagedObject根节省上下文中将JSON解析为s(一些新实体,一些更新的实体)
  3. Root Saving Context保存到持久存储
  4. NSManagedObjectContextDidSaveNotification由Core Data广播.主队列上的默认上下文观察它并mergeChangesFromContextDidSaveNotification:使用NSDictionary主线程上的更改进行调用.
  5. objectID被发送到无效对象时崩溃(很可能NSManagedObject已被解除分配).

这是在私人实施中发生的,NSManagedObjectContext mergeChangesFromContextDidSaveNotification:所以我们不可能看到这里出了什么问题; 在这一点上我们只能告诉我们一个应该存在的对象.

在此输入图像描述

这仅发生在Core Data保存的一小部分上,表明这可能不是我们的Core Data→API堆栈的根本缺陷.此外,没有迹象表明上下文更改中的更改(插入/更新/删除)的大小或类型对崩溃的可能性有任何影响.

core-data objective-c nsmanagedobjectcontext ios magicalrecord

18
推荐指数
1
解决办法
1833
查看次数

如何计算(x,y)固定弧长远离圆周上的点

我已经花了这么多时间,我可以感觉到我的理智慢慢滑落.所以任何帮助都会真正受到赞赏.我会尝试尽可能简洁.

我在2D平面上有一个圆圈.我知道它的中心点(C)和半径(R)的笛卡尔坐标.

我的困惑源于这个问题.在圆圈外面的平面上设有一个点; 我可以计算最接近该点的圆周上的点(P).

我想要做的是确定圆周上2个点的(x,y)坐标.我们称他们为P1和P2.P1和P2是弧的两端.弧具有固定长度(X).P是P1和P2之间的中间点.因此,从P到P1&P到P2的弧长都是X/2.

简而言之:给定C,R,P,X; 我需要计算P1和P2.

我试图用c ++编写代码,但任何建议或伪代码都会很棒.

编辑:X是弧长,而不是P1和P2之间的直线

c c++ geometry trigonometry geometric-arc

9
推荐指数
1
解决办法
4246
查看次数