当我们使用NSLog
语句提交申请时,
声明会有什么影响? 那些仍然会执行吗? 如果执行,这些日志会作为应用程序日志/系统日志存储在某处吗?我们能看到那些吗? 它是否与iTunesConnect中的Apple崩溃报告相关联?
请澄清我的疑虑。
答案 0 :(得分:7)
简短回答: -
答案 1 :(得分:6)
NSLog
次调用可以留在生产代码中。它将记录在系统日志中。
乱丢系统日志的应用程序很烦人,并且是一种不专业的方式。因此,尝试在日志记录中使用宏,以便您可以删除生产中的日志代码执行
#define DEBUG_MODE
#ifdef DEBUG_MODE
#define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DebugLog( s, ... )
#endif
答案 2 :(得分:5)
NSLog语句将继续投入生产。您可以通过Shift + CMD + 2
或:
Xcode > Windows > Organizer
如果您已连接设备。检查控制台,您可以看到它们,以及使用该应用程序的其他人。
答案 3 :(得分:2)
是的,如果您将其保留在发布版本中,则会执行该语句。
因此,更好的做法是在发布构建中评论NSLog或使用@Lithu T.V所述的DEBUG MODE
通过这样做,性能将变得更好。因为NSLog很慢。 NSLog将做两件事 1)将日志消息写入Apple System Logging(ASL) 2)如果应用程序在xcode中运行,它也会写入stderr。
主要问题在于第一个问题。为了实现线程安全,每次调用NSLog时,它都会打开与ASL工具的连接,发送消息并关闭连接。连接操作非常昂贵。另一个原因是NSLog花费一些时间来记录时间戳。
更新: 此外,我认为没有任何直接的方法来检查系统中的日志,但是有一些软件可以帮助查看控制台日志。 以下内容可帮助您显示控制台日志:http://support.apple.com/kb/DL1465
我自己从未尝试过。所以不能给你保证。
答案 4 :(得分:2)
NSLog语句将被存储&amp;如果你是在生产中执行 不打算删除它们。这不是一个好习惯。如果影响了 应用程序性能。
有一个关于在MobileTuts +
上显示日志的好教程Mobile Tuts Plus NSlog tutorial
无论如何,如果你想存储它,你需要将它存储在文档目录中的某个地方,但是你也无法从设备应用程序目录中获取文件。为此,您可以将其上传到webserver
或类似的地方。然后你可以访问它们。
如果有任何疑问,请告诉我。