gpt4 book ai didi

iphone - NSLog 导致 iPhone 应用程序在 Apple 应用程序审核期间崩溃

转载 作者:行者123 更新时间:2023-12-03 20:24:46 27 4
gpt4 key购买 nike

我向 iTunesConnect 提交了我的应用程序,Apple 给我返回了以下崩溃报告:

Thread 2 Crashed:
0 libobjc.A.dylib 0x00003eb8 objc_msgSend + 16
1 Foundation 0x0004c3aa _NSDescriptionWithLocaleFunc + 24
2 CoreFoundation 0x0003d52e _CFStringAppendFormatAndArgumentsAux + 1390
3 CoreFoundation 0x0003ceca _CFStringCreateWithFormatAndArgumentsAux + 66
4 CoreFoundation 0x00073fd6 _CFLogvEx + 34
5 Foundation 0x000661a4 NSLogv + 74
6 Foundation 0x0006614a NSLog + 18
7 mobilescan 0x00039014 -[BlaBlaBlaDao insertCategoryWithId:andName:] (BlaBlaBlaDao.m:110)

似乎当应用程序尝试打印日志时,它会使应用程序崩溃。这很奇怪,因为在 Debug模式下,应用程序会停止 2 秒,然后打印错误并继续工作...

从 BlaBlaBlaDao.m 中应用程序崩溃的第 110 行,我有这些行:

NSLog(@"category, id:%@, name:%@", subcategory.id, subcategory.name);

[subcategory addFreshfoodProductsObject:freshfoodProduct];

NSError *error = nil;
if (![managedObjectContext save:&error]) {
[managedObjectContext rollback];
NSLog(@"error: %@", error);
}

它来自苹果的例子......

大家都知道为什么吗?

感谢您的帮助!

最佳答案

在格式字符串中,您需要两个对象。对于日志记录,调用对象的 -description 方法。当尝试打印其中一个对象的描述时,您的应用程序似乎崩溃了。您的一个或两个属性可能不是对象,而是标量值。也有可能其中一个属性(如果它是对象)已在某个时刻被释放,并且您正在向已释放的实例发送消息。

除了崩溃之外,请勿在您提交到 App Store 的应用程序中使用 NSLog。它没有理由存在,它所做的只是将文本转储到运行应用程序的每台 iPhone 的控制台。如果我没记错的话,所有这些都记录在每台运行此程序的 iPhone 上。不仅如此,它还会不必要地减慢您的应用程序的速度。在提交应用程序之前删除这些调用,或者使用 #ifdef 将它们本地化为仅您的调试版本。

关于iphone - NSLog 导致 iPhone 应用程序在 Apple 应用程序审核期间崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891617/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com