iPhone 在 CoreData 保存时崩溃

2024-01-26

这是一个不同的情况这个问题 https://stackoverflow.com/questions/1230858/iphone-core-data-crashing-on-save,因为提供的解决方案不起作用并且堆栈不同。

当我使用 coredata 保存数据时定期崩溃。

堆栈跟踪并不是 100% 清楚发生这种情况的位置,但我确信正在调用的是这个例程。它要么是save:在此方法或以下方法中。

Code:

-(void)saveWine {
    if ([self validInfo]) {
        Wine *wine =  (Wine *)wineToEdit;
        if (wine == nil) {
            wine = (Wine *)[NSEntityDescription insertNewObjectForEntityForName:@"Wine" inManagedObjectContext:self.managedObjectContext];
        }
        wine.uuid = [Utils createUUID];
        wine.name = self.wineNameField.text;
        wine.vineyard = self.vineyardField.text;
        wine.vintage = [[self numberFormatter] numberFromString:self.vintageField.text];
        wine.timeStamp = [NSDate date];
        wine.rating = [NSNumber numberWithInt:self.ratingControl.selectedSegmentIndex];
        wine.partnerRating = [NSNumber numberWithInt:self.partnerRatingControl.selectedSegmentIndex];
        wine.varietal = self.currentVarietal;
        wine.tastingNotes = self.currentTastingNotes;
        wine.dateTasted = self.currentDateTasted;
        wine.tastingLocation = [[ReferenceDataAccessor defaultReferenceDataAccessor] addEntityForType:TASTING_LOCATION 
                                                                                             withName:self.currentWhereTasted];

        id type = [[ReferenceDataAccessor defaultReferenceDataAccessor] entityForType:WINE_TYPE 
                                                                          withOrdinal:self.typeControl.selectedSegmentIndex];
        wine.type = type;
        NSError *error;
        NSLog(@"Saving %@",wine);
        if (![self.managedObjectContext save:&error]) {
            [Utils showAlertMessage:@"There was a problem saving your wine; try restarting the app" withTitle:@"Problem saving"];
            NSLog(@"Error while saving new wine %@, %@", error, [error userInfo]);
        }
    }
    else {
        NSLog(@"ERROR - someone is calling saveWine with invalid info!!");
    }
}

代码为addEntityForType:withName::

-(id)addEntityForType:(NSString *)type withName:(NSString *)name {

    if ([Utils isStringBlank:name]) {
        return nil;
    }
    id existing = [[ReferenceDataAccessor defaultReferenceDataAccessor] entityForType:type withName:name];

    if (existing != nil) {
        NSLog(@"%@ with name %@ already exists",type,name);
        return existing;
    }


    NSManagedObject *newEntity = [NSEntityDescription insertNewObjectForEntityForName:type 
                                                               inManagedObjectContext:self.managedObjectContext];

    [newEntity setValue:name forKey:@"name"];

    NSError *error;
    if (![self.managedObjectContext save:&error]) {
        [Utils showAlertMessage:[NSString stringWithFormat:@"There was a problem saving a %@",type] withTitle:@"Database Probem"];
        [Utils logErrorFully:error forOperation:[NSString stringWithFormat:@"saving new %@",type ]];
    }
    return newEntity;
}

堆栈跟踪:

Thread 0 Crashed:
0   libSystem.B.dylib               0x311de2d4 __kill + 8
1   libSystem.B.dylib               0x311de2c4 kill + 4
2   libSystem.B.dylib               0x311de2b6 raise + 10
3   libSystem.B.dylib               0x311f2d72 abort + 50
4   libstdc++.6.dylib               0x301dea20 __gnu_cxx::__verbose_terminate_handler() + 376
5   libobjc.A.dylib                 0x319a2594 _objc_terminate + 104
6   libstdc++.6.dylib               0x301dcdf2 __cxxabiv1::__terminate(void (*)()) + 46
7   libstdc++.6.dylib               0x301dce46 std::terminate() + 10
8   libstdc++.6.dylib               0x301dcf16 __cxa_throw + 78
9   libobjc.A.dylib                 0x319a14c4 objc_exception_throw + 64
10  CoreData                        0x3526e83e -[NSManagedObjectContext save:] + 1098
11  Wine Brain                      0x0000651e 0x1000 + 21790
12  Wine Brain                      0x0000525c 0x1000 + 16988
13  Wine Brain                      0x00004894 0x1000 + 14484
14  Wine Brain                      0x00008716 0x1000 + 30486
15  CoreFoundation                  0x31477fe6 -[NSObject(NSObject) performSelector:withObject:withObject:] + 18
16  UIKit                           0x338c14a6 -[UIApplication sendAction:to:from:forEvent:] + 78
17  UIKit                           0x3395c7ae -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 86
18  CoreFoundation                  0x31477fe6 -[NSObject(NSObject) performSelector:withObject:withObject:] + 18
19  UIKit                           0x338c14a6 -[UIApplication sendAction:to:from:forEvent:] + 78
20  UIKit                           0x338c1446 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
21  UIKit                           0x338c1418 -[UIControl sendAction:to:forEvent:] + 32
22  UIKit                           0x338c116a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 350
23  UIKit                           0x338c19c8 -[UIControl touchesEnded:withEvent:] + 336
24  UIKit                           0x338b734e -[UIWindow _sendTouchesForEvent:] + 362
25  UIKit                           0x338b6cc8 -[UIWindow sendEvent:] + 256
26  UIKit                           0x338a1fc0 -[UIApplication sendEvent:] + 292
27  UIKit                           0x338a1900 _UIApplicationHandleEvent + 5084
28  GraphicsServices                0x35d66efc PurpleEventCallback + 660
29  CoreFoundation                  0x314656f8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
30  CoreFoundation                  0x314656bc __CFRunLoopDoSource1 + 160
31  CoreFoundation                  0x31457f76 __CFRunLoopRun + 514
32  CoreFoundation                  0x31457c80 CFRunLoopRunSpecific + 224
33  CoreFoundation                  0x31457b88 CFRunLoopRunInMode + 52
34  GraphicsServices                0x35d664a4 GSEventRunModal + 108
35  GraphicsServices                0x35d66550 GSEventRun + 56
36  UIKit                           0x338d5322 -[UIApplication _run] + 406
37  UIKit                           0x338d2e8c UIApplicationMain + 664
38  Wine Brain                      0x000021ba 0x1000 + 4538
39  Wine Brain                      0x00002184 0x1000 + 4484

我不知道为什么我的应用程序的内存位置没有被符号定位,但代码路径仅导致两个manavedObjectContext save:来电。发生这件事的时候,addEntityForType在最终调用之前一直被调用,为“whereTasted”实体创建一个新对象save:整体上wine object.

当我再次执行相同的程序时,效果很好。这让我相信这与添加新位置时应用程序运行了一段时间有关,但我不确定。

关于如何调试此问题并在下次发生这种情况时获取更多信息有什么想法吗?


将 @try - @catch 放在您的保存调用周围。保存时似乎抛出异常:

9 libobjc.A.dylib 0x319a14c4 objc_exception_throw + 64

Sample:

@try
{
    if (![self.context save:&error]) {
        [[NSApplication sharedApplication] presentError:error];

}
@catch (NSException * e)
{
    NSLog(@"exception saving: %@", e);
    abort();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone 在 CoreData 保存时崩溃 的相关文章

  • 如何将 NSDictionary 转换为 NSData,反之亦然?

    我正在发送NSString and UIImage使用蓝牙 我决定将两者都存储在NSDictionary然后将字典转换为NSData 我的问题是如何转换NSDictionary to NSData反之亦然 NSDictionary gt N
  • 有没有用于iPhone开发的高级手势库?

    iPhone 平台有许多常见的手势习惯用法 例如 有轻击 捏合和滑动等操作 每种操作都需要不同数量的手指 但是 当您开发应用程序时 您需要根据有关触摸次数和位置的低级信息来实现这些内容 看起来这是图书馆的主要候选者 您将注册一个委托 设置一
  • 在 Facebook 墙上添加照片

    void postToWall FBStreamDialog dialog FBStreamDialog alloc init autorelease dialog userMessagePrompt NSString stringWith
  • 自定义 UITableViewCell 中按钮上的 IBAction

    使用 iOS 5 我有一个场景 我必须使用自定义单元格创建一个 tableView 自定义单元格有一个名为 TainingCellController 的控制器 UITableViewCell 的子类和一个 NIB 文件 TrainingC
  • WKWebView 上的链接点击侦听器?

    WKWebView 类中是否存在类似 onLinkClickListener 的东西 我尝试用谷歌搜索但一无所获 我还在类似类型的 stackoverflow 上发现了一些未解答的问题 我需要 linkClickListener 的原因是
  • 可接受的滚动 FPS 是多少?提高性能的技巧有哪些?

    我在许多 WWDC 视频中看到 您希望尽可能达到 60 0 FPS 以获得更好的平滑滚动体验 我有一个 UIScrollLView 它可以立即加载图像和几个表格视图 目前我的帧速率为 30 FPS 这是推荐 FPS 的一半 只是想知道对于加
  • 初始化单例的不同方式

    在 C 和 Java 中 我基本上看到了每个人初始化单例的一种方法 static obj inst null obj getInstance if inst null inst new obj return inst 现在 当我转向 iPh
  • SwiftUI 从一个列表拖动到另一个列表

    我正在尝试在列表之间拖放 我尝试过的 我找到了一个在 UIKIt 中执行此操作并使用 UIViewControllerRepresentable 的解决方案 但这不是我想要的 另一个解决方案是在列表上使用 onDrag 但这在 iPad 上
  • 如何以编程方式从 iPhone 地址簿获取地址占位符文本?

    我试图为用户提供一种在基于位置的应用程序中输入地址的方法 并且我希望它看起来与 iPhone 联系人 地址簿中的地址完全相同 这意味着我需要根据所选国家 地区更新每个字段的占位符文本 例如 美国占位符是 街道 城市 State ZIP 英国
  • 高度在 IOS (iphone) 上无法正常工作

    我已经创建了this https codepen io salman15 project live DWbWpo Codepen 上的网站 在尝试使其响应所有平台时 我遇到了问题 看起来单个 div 覆盖了整个页面 仅在 IOS 上 并且并
  • 签名仅对临时无效

    我不确定我的临时项目发生了什么变化 但在尝试安装时出现此错误 应用程序未通过协同设计验证 签名无效 或者不是用Apple提交证书签名的 19011 设备调试构建良好 与我的临时配置文件关联的证书直到 2011 年才会过期 我搜索了 Goog
  • 在 iOS 上保存(私人)应用程序设置?

    我知道NSUserDefaults用于保存 恢复user优先 什么是等效类应用 例如 应用程序可能有一个 上次运行 字段 或者它可能有一个用于在应用程序级别使用的设备的唯一标识的字段 我的目的是将应用程序的设置 而不是用户的设置 保留在设置
  • 在我的 iPhone 应用程序中使用视频作为启动画面是个好主意吗?

    我即将完成一个应用程序 现在我想在应用程序完成加载和启动后添加带有我公司徽标的动画启动屏幕 我可以为此使用 openGL 动画 但我想知道使用视频是否会更好 这对我和艺术家来说更容易 因为他只会提供一个小视频 我将在我的应用程序完成后重现该
  • 应用程序关闭时下载报刊亭应用程序

    我正在实现一个报摊杂志应用程序 它通过 Urban Airship 推送通知接收新期刊 只要应用程序位于前台或后台 这就可以正常工作 但据我所知 当应用程序完全关闭时也应该触发下载 但发送推送 content available 1如果我的
  • Objective-C 内存管理:发布时崩溃

    我是 Objective C 的新手 似乎无法正确理解内存管理代码 我有以下代码 Media myMedia self myMediaManager getNextMedia self navigationItem title self m
  • 关闭 iPhone 网络应用程序

    我想关闭或最小化 隐藏 全屏 iPhone Web 应用程序 这个怎么做 window close 不起作用 你不能 您无法从 JavaScript 中退出浏览器 但你可以尝试让浏览器崩溃 但这并不是一个好主意
  • 帮助在 UIWebView 中使用 Javascript 代码

    我想在 webView 中运行以下代码 以便内容可编辑 javascript document body contentEditable true document designMode on void 0 到目前为止 我已经尝试过这个 v
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • iPhone Mobile Safari:强制键盘打开

    这是一个 HTML CSS JS jQuery iPad 应用程序 我有一个按钮 可以向下滑动输入表单 我想让用户将注意力集中在输入上 然后启动键盘 这是我正在处理的 但不起作用 myFormField focus 这确实集中了输入 但无法

随机推荐

  • 更改 jquery 工具提示箭头的位置

    我正在尝试将箭头的位置更改为文本框附近的左侧 我怎样才能解决这个问题 我已经尝试过这个 工作示例链接 http jsfiddle net b8fcg http jsfiddle net b8fcg HTML
  • Java EE 6 发布日期 [已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions Java
  • 用于操作 S-Record 和 Intel HEX 16 文件的库

    是否有可用的开源库 用 python 或 java 开发 用于操作 Motorola S Record 文件和 Intel HEX 16 文件 例如从一种格式转换为另一种格式 我正在寻找一个 纯 java或python库 而不仅仅是一组ja
  • RecyclerView 回收时出现问题

    我有一个我使用创建的项目列表RecyclerView 当用户单击其中之一时 我会更改所选项目的背景颜色 问题是 当我滚动浏览我的项目并回收它们时 某些项目会获得所选项目的背景颜色 这是错误的 在这里你可以看到我的Adapter s code
  • 用字典解析字符串的算法

    Given 一本充满单词的字典 in july den dentist best 使用一些 C API 来访问它 boolean findWord string word or string getNextWord void 迭代它 一些没
  • 解码 websocket 框架

    我正在尝试解码 websocket 帧 但在解码扩展有效负载时没有成功 到目前为止我所取得的成就是 char in data char buffer unsigned int i unsigned char mask 4 unsigned
  • 就地对 Perl 数组进行排序

    我有一个对数组的引用 称为 intervals 我想对这个数组中的值进行排序 数组中可能有大量值 所以我不想复制这些值 我目前的做法是这样的 sub by position a gt start lt gt b gt start a gt
  • React Hooks:如何在渲染之前等待数据被获取

    我在 useEffect 挂钩中有 fetch 方法 export const CardDetails gt const card getCardDetails useState const id useParams useEffect g
  • ResponseEntityExceptionHandler 针对 401 异常返回空响应正文

    我正在尝试使用 RestTemplate 实现对身份验证服务器的 Rest 调用 并记录响应 以防服务器返回异常 为了做到这一点 我使用 ResponseEntityExceptionHandler 来处理 HttpClientErrorE
  • R 中的掩码电话号码

    我的原始数据有很多个人信息 所以我在R中屏蔽它们 示例数据和我的原始代码如下 install packages stringr library string x c 010 1234 5678 John 010 8888 8888 Phon
  • Node JS:异步执行命令行并获取输出

    我如何运行命令行并尽快获取输出以将其显示在某处 例如 如果在 Linux 系统上运行 ping 命令 它永远不会停止 现在是否可以在命令仍在处理时获得响应 或者让我们采取apt get install命令 如果我想在安装运行时显示安装进度怎
  • If 语句内部和外部的 Return

    这可能是一个相当容易回答的问题 但它已经困扰我一段时间了 如果 if 语句内有一个 return 语句 在一个方法内 在 Java 语言中 但我在末尾添加另一个作为包罗万象并避免错误 则两个返回值都将在其他 if if 语句为真 一个例子
  • 我如何在Python中只向下舍入数字/浮点数?

    我将生成这个随机数 例如 12 75 或 1 999999999 或 2 65 我希望始终将此数字向下舍入为最接近的整数 因此 2 65 将四舍五入为 2 抱歉 我问了很多遍 但没有找到答案 谢谢 您可以选择我们int math trunc
  • org.bson.BSONObject 中的 java 类型

    我目前正在学习mongodb 的 BSON java 库 http github com mongodb mongo java driver 我正在尝试改变org bson BSONObject到 XML 中 以便将其转换为XSLT样式表
  • 在solr中搜索特殊字符

    我在 solr 中搜索特殊字符时遇到问题 我的文档有一个 标题 字段 有时它可能像 泰坦尼克号 1999 它有字符 当我尝试使用 在 solr 中搜索时 我收到 400 错误 我试图转义这个字符 所以我尝试了 和 之类的东西 经过这些更改
  • C# 中使用掩码进行位操作

    我需要一些有关 C 中位图操作的帮助 我想要一个UInt16 隔离任意数量的位 并使用另一个位设置它们UInt16 value Example 10101010 Original Value 00001100 Mask Isolates b
  • Android将图片旋转90度(相机拍摄)[重复]

    这个问题在这里已经有答案了 我正在通过代码在我的 Samsung Galaxy SII 设备中拍照 保存并在屏幕上显示它后 我看到它旋转了 90 度 我知道这是一些设备问题 并非所有设备上都会发生这种情况 我正在使用给定的相机意图拍照并将其
  • Apollo 客户端什么是主动查询?

    My Setup Typescript 反应应用程序 后端 GraphQL API 阿波罗客户端 使用 Apollo 客户端 Devtools 扩展进行检查 我的问题 什么是主动查询 Apollo 文档谈论了很多主动查询 但我很难得到一个实
  • 如果填充了另一个字段,则 MVC 3 字段为必填字段

    我有一个简单的问题 例如 我有两个字段映射在模型 ex 上 textbox 1 和 textbox 2 我想问是否存在一种方法 前强制装饰器 仅当我填充 textbox 1 时才强制执行 textbox 2 如果我不填写textbox 1
  • iPhone 在 CoreData 保存时崩溃

    这是一个不同的情况这个问题 https stackoverflow com questions 1230858 iphone core data crashing on save 因为提供的解决方案不起作用并且堆栈不同 当我使用 cored