热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何记录在Xcode中显示为运行时问题的警告?-HowtologawarningthatshowsupasaruntimeissueinXcode?

Xcode8or9starteddisplayingruntimeissues.Youseeapurpleiconatthetopofthewindow,and

Xcode 8 or 9 started displaying runtime issues. You see a purple icon at the top of the window, and a list in Issue Navigator, next to buildtime issues like compilation warnings and errors.

Xcode 8或9开始显示运行时问题。您会在窗口顶部看到一个紫色图标,并在“问题导航器”中看到一个列表,旁边是构建时间问题,如编译警告和错误。

enter image description here

enter image description here

The runtime issues I've seen are created by the system libraries. Is there a way for my own application code to generate these?

我见过的运行时问题是由系统库创建的。有没有办法让我自己的应用程序代码生成这些代码?

5 个解决方案

#1


1  

Yes! You'll see these if you do something that a sanitizer catches, like performing certain UI operations a background thread with Thread Sanitizer enabled. Having an ambiguous layout and pausing in the view debugger is also a way to get this to occur. Either way, seeing this occur in Apple's libraries isn't a good thing…

是!如果您执行清洁剂捕获的操作,您将看到这些内容,例如在启用了Thread Sanitizer的后台线程中执行某些UI操作。在视图调试器中具有模糊布局和暂停也是实现此目的的一种方法。无论哪种方式,看到苹果公司的图书馆出现这种情况并不是一件好事......

#2


1  

CocoaLumberjack framework can be used to capture Run times console logs as well as App's Background wakeup logs.

CocoaLumberjack框架可用于捕获运行时控制台日志以及App的后台唤醒日志。

https://github.com/CocoaLumberjack/CocoaLumberjack

https://github.com/CocoaLumberjack/CocoaLumberjack

https://github.com/phonegap/phonegap-plugin-push/issues/1988

https://github.com/phonegap/phonegap-plugin-push/issues/1988

This way you can capture purple warnings displayed in Xcode9 like below in a file that is maintained inside App Container:-

通过这种方式,您可以在App Container中维护的文件中捕获Xcode9中显示的紫色警告,如下所示: -

=================================================================

================================================== ===============

Main Thread Checker: UI API called on a background thread: -[UIApplication registerUserNotificationSettings:] PID: 2897, TID: 1262426, Thread name: (none), Queue name: com.apple.root.default-qos, QoS: 21

主线程检查器:在后台线程上调用的UI API: - [UIApplication registerUserNotificationSettings:] PID:2897,TID:1262426,线程名称:(无),队列名称:com.apple.root.default-qos,QoS:21

#3


1  

It depends on you if you are doing any UI related stuff on other then main thread so system will generate for you else you can not manually generate it.

这取决于你,如果你在其他主线程上做任何UI相关的东西,所以系统将为你生成,你不​​能手动生成它。

All UI manipulations should be done in the Main Thread.

所有UI操作都应该在主线程中完成。

If you are not doing this so, in XCode 9 have feature called Main thread checker.

如果你不这样做,在XCode 9中有一个叫做主线程检查器的功能。

For more info, you can visit below url: https://developer.apple.com/documentation/code_diagnostics/main_thread_checker

有关详细信息,请访问以下网址:https://developer.apple.com/documentation/code_diagnostics/main_thread_checker

It is basically used to checks whether any UIKit related stuff is happening on a main thread or not ?, If failed to do so, it will produce issues at Runtime. So wrap your code in Main Thread block like below to avoid glitches and runtime warnings.

它基本上用于检查主线程上是否发生任何与UIKit相关的事情?如果不能这样做,它将在运行时产生问题。因此,将代码包装在主线程块中,如下所示,以避免毛刺和运行时警告。

You can Enable - Disable using this steps Edit Scheme... -> (Select your scheme) -> Diagnostics -> Disable 'Main thread checker'

您可以启用 - 使用以下步骤禁用编辑方案... - >(选择您的方案) - >诊断 - >禁用'主线程检查'

#4


1  

In XCode 8.3 and earlier you can use set breakpoint into any method of UIKit class like setNeedsDisplay() like below.

在XCode 8.3及更早版本中,您可以将set breakpoint用于UIKit类的任何方法,如下面的setNeedsDisplay()。

Also there is library in objective-c steipete class in which #import is used.

在objective-c steipete类中还有一个库,其中使用了#import

enter image description here

But in Xcode 9 below library Xcode.app/Contenets/Developer/usr/lib/libMainThreadChecker.dylib is available, Which handle for any relevant issues potentially performed out-of-main thread at runtime.

但是在Xcode 9下面,库Xcode.app/Contenets/Developer/usr/lib/libMainThreadChecker.dylib可用,它处理在运行时可能在主外线程执行的任何相关问题。

#5


0  

See here
Once you have deployed your app, either through the App Store or as an Ad Hoc or Enterprise build, you won't be able to attach Xcode's debugger to it. To debug problems, you need to analyze Crash Logs and Console output from the device.

请参阅此处通过App Store或Ad Hoc或Enterprise版本部署应用程序后,您将无法将Xcode的调试器附加到其中。要调试问题,您需要分析设备的崩溃日志和控制台输出。

Apple Watch crash logs will be available on the paired device and can also be obtained using the methods described below.

Apple Watch崩溃日志将在配对设备上提供,也可以使用下述方法获取。

For more information on writing rich NSLog statements, see Improved logging in Objective-C.

有关编写丰富的NSLog语句的更多信息,请参阅Objective-C中的改进日志记录。

Paste below example code into your project:

将示例代码粘贴到项目中:

NSMutableArray *someObject = [NSMutableArray array];
NSLog(@"%s:%d someObject=%@", __func__, __LINE__, someObject);
[someObject addObject:@"foo"];
NSLog(@"%s:%d someObject=%@", __func__, __LINE__, someObject);

推荐阅读
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 【高效构建全面的iOS直播应用】(美颜功能深度解析)
    本文深入探讨了如何高效构建全面的iOS直播应用,特别聚焦于美颜功能的技术实现。通过详细解析美颜算法和优化策略,帮助开发者快速掌握关键技术和实现方法,提升用户体验。适合对直播应用开发感兴趣的开发者阅读。 ... [详细]
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • 解题心得:UVA1339(逻辑分析与字符串处理+排序算法)
    解题心得:UVA1339(逻辑分析与字符串处理+排序算法) ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 在尝试为 Unity 编译一个简单的 Java 库时,运行 `ant jar` 命令后遇到了 Java I/O 异常。具体错误信息为“无法启动程序 ${aAPT},错误代码 2”,这通常表示指定的文件或目录不存在。此问题可能是由于环境配置不正确或路径设置有误导致的。建议检查相关路径和环境变量,确保所有依赖项都已正确安装和配置。 ... [详细]
  • 如何使用 net.sf.extjwnl.data.Word 类及其代码示例详解 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
author-avatar
竹条蠢爱玉米
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有