首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

25面向OBject-c语言的超详细知识点教程整理

第二章:开发环境安装与配置 重点详细内容知识点总结 Xcode:Apple官方提供的集成开发环境(IDE),包含了Object-C的编译器和调试器。...第五章:内存管理与引用计数 重点详细内容知识点总结 自动垃圾回收机制:Objective-C支持自动垃圾回收机制,可以自动管理内存释放,减少内存泄漏的可能性。...引用计数:跟踪对象的引用次数,当引用计数为0时,对象被释放。 如何学习该知识 学习内存管理的原理和机制。 通过编写程序,实践内存管理和引用计数的使用。...第九章:错误处理与调试 重点详细内容知识点总结 错误处理:了解Object-C中的错误处理机制,如异常处理等。 调试:学习使用Xcode的调试工具,如断点、调试器等。...资源简介 本教程全面介绍了Object-C语言的基础知识、开发环境配置、面向对象编程、内存管理、Foundation框架、分类与协议、动态特性与运行时、错误处理与调试以及实践项目与案例分析等内容。

19510

iOS开发 Xcode的各种调试、DEBUG

毕竟ARC并没有完全排除内存泄露的可能性,或者试图访问一个被release的对象。...------- 利用NSString输出多种类型 开启僵尸对象 Xcode可以把那些已经release掉得对象,变成“僵尸”,当我们访问一个Zombie对象时,Xcode可以告诉我们正在访问的对象是一个不应该存在的对象了...LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。...(这里有一个关于调试器如何工作的总体的解释。) 你以前有可能已经使用过调试器,即使只是在 Xcode 的界面上加一些断点。但是通过一些小的技巧,你就可以做一些非常酷的事情。...完整清单点击查看 po 打印对象,是 e -o --的缩写 expression 流程控制 当你通过 Xcode 的源码编辑器的侧边槽 (或者通过下面的方法) 插入一个断点,程序到达断点时会就会停止运行

2.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    扒虫篇-Debug几个实用的方法

    二.断点 (1)普通断点 普通断点是调试中最常使用的。当程序运行到断点处就会暂停运行。 用于在某些重要的操作前查看关键参数的值。...僵尸模式(NSZombieEnabled) 启用了NSZombieEnabled的话,它会用一个僵尸来替换默认的dealloc实现,也就是在引用计数降到0时,该僵尸实现会将该对象转换成僵尸对象。...僵尸对象的作用是在你向它发送消息时,它会显示一段日志并自动跳入调试器。 所以当启用NSZombieEnabled时,一个错误的内存访问就会变成一条无法识别的消息发送给僵尸对象。...僵尸对象会显示接受到得信息,然后跳入调试器,这样你就可以查看到底是哪里出了问题。 所以这时一般崩溃的原因是:调用了已经释放的内存空间,或者说重复释放了某个地址空间。...它提供的功能如下: 查看、修改views 查看任何对象的属性 动态的修改属性 动态的调用实例方法和类方法 查看网络请求过程 添加模拟的键盘快捷键 查看系统日志 从堆中获取任何对象 查看沙盒中的文件

    1.6K10

    WWV 2018年十大必看视频

    协议一致性也应该可用于子类 - 捕获某些类型的功能。 6)使用Xcode和LLDB进行高级调试 - 412 ?...另一个高级技巧涉及执行线程 - 谨慎,因为您可以更改应用程序的状态。p是另一个LLDB命令,用于查看当前对象的调试表示。在暂停时使用“变量调试器”,可以查看和过滤属性以查找要检查的项目。...您可以将脚本放入正文或创建对项目中另一个脚本的引用。例如,如果将脚本放入外部文件中,则在Xcode 10“文件列表”中,它是只读的,不会被编译。您的输出文件也可以放在文件列表中。...如果输入文件发生变化,Xcode知道它需要运行Run Script阶段。此外,如果输出文件丢失,Xcode可以为您重新生成这些文件。Xcode 10中的新增内容是有关Run Script阶段的文档。...如果你有依赖循环,Xcode 10现在将报告并产生错误,在你的项目中可能存在循环依赖引用。 关于构建时间的测量也是新的。内联任务将显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中的内容。

    2.8K20

    WWDC 2018年十大视频评论

    协议一致性也应该可用于子类 - 捕获某些类型的功能。 6)使用Xcode和LLDB进行高级调试 - 412 ?...花药高级技巧涉及执行线程 - 谨慎,因为您可以更改应用程序的状态。p是另一个LLDB命令,用于查看当前对象的调试表示。在暂停时使用“变量调试器”,可以查看和过滤属性以查找要检查的项目。...观察点就像断点,但在值更改时暂停调试器。 “我们使用调试器来调试我们的调试器。”...如果输入文件发生变化,Xcode知道它需要运行Run Script阶段。此外,如果输出文件丢失,Xcode可以为您重新生成这些文件。Xcode 10中的新增内容是有关Run Script阶段的文档。...如果你有依赖循环,Xcode 10现在将报告并产生错误,在你的项目中可能存在循环依赖引用。 关于构建时间的测量也是新的。内联任务将显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中的内容。

    3.4K20

    Xcode Debug 大全

    毕竟ARC并没有完全排除内存泄露的可能性,或者试图访问一个被release的对象。...Zombie对象时,Xcode可以告诉我们正在访问的对象是一个不应该存在的对象了。...LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。...(这里有一个关于调试器如何工作的总体的解释。) 你以前有可能已经使用过调试器,即使只是在 Xcode 的界面上加一些断点。但是通过一些小的技巧,你就可以做一些非常酷的事情。...完整清单点击查看 po 打印对象,是 e -o --的缩写 expression 流程控制 当你通过 Xcode 的源码编辑器的侧边槽 (或者通过下面的方法) 插入一个断点,程序到达断点时会就会停止运行

    1.2K21

    汇编和栈

    当一个函数序言完成设置时,RBP 的内容将指向堆栈帧下面的前一个 RBP 注意:当您通过单击 Xcode 中的帧或使用 LLDB 跳到另一个堆栈帧时,RBP 和 RSP 寄存器都将更改值以对应于新的帧!...# 操作码 push 当需要将诸如 int,Objective-C 实例,Swift 类或引用之类的任何内容保存到堆栈时,将使用 push 操作码。...要查看具体示例,请考虑以下操作码: push 0x5 这将使 RSP 递减,然后将值 5 存储在 RSP 指向的内存地址中。...Xcode 会在 StackWalkthrough 中中断。一定要通过 source” 查看 StackWalkthrough 函数 (即使它是汇编)。...调试器仍应在 executeLotsOfArguments 上停止。 确保您正在查看 “始终显示汇编” 输出并寻找汇编。

    3.7K20

    iOS代码调试之LLDB命令

    前言 在iOS系统的APP程序开发中,经常需要代码的调试跟踪,最常用的就是LLDB Debugger程序调试器,LLDB Debugger (LLDB) 是一个开源、底层调试器(low level debugger...p 命令: print 命令的简写,使用p 命令可以查看基本数据类型的值;如果使用p命令查看的是对象,那么只会返回对象的指针地址。 p命令后面除了可以接变量、常量,还可以接表达式。...p 和 po 的区别在于使用 po 只会输出对应的值,而 p 则会返回值的类型以及命令结果的引用名。 用法如下: ?...在输出结果中有类似于$0,$1这样的符号,它是指向对象的一个引用,在控制面板中可以直接使用这个符号来操作对应的对象,它们存在于LLDB的全名空间中,目的是为了辅助调试。...3.image寻址 image 命令主要用于寻址,一般是通过各种组合命令实现不同功能。 image list命令用来查看工程中使用的库: ?

    1.8K20

    iOS_Memory Leak 内存泄露治理

    ,新分配的内存信息. ---- 2、Memory Report Xcode 运行项目时,切换到 Debug navigator 点击 memory 就可以查看 Memory Report,显示 内存使用...的整体情况: 用于定位内存泄露的话用处不大,只能看到内存的概况。...这提高了Xcode识别泄漏的准确性。 Malloc Stack Logging:启用此选项将允许Xcode构建分配回溯,以帮助了解对象从何处引用。...5.2、入口: Xcode 运行项目时可点击中部栏的Debug Memory Graph按钮,查看内存图: 5.3、使用分析: 5.3.1、分析方式1: 点击左侧 导航栏 - 底部栏 的 Show...: 点击需要分析的泄露对象,查看详情: 内部也是使用FBRetainCycleDetector进行引用循环链的查找: 也可将文件导出:FloatingWebVC.txt 分析详情中的循环引用链

    90520

    XCode基本使用及调试技巧

    导航区:导航作用,可以查看项目总体结构。 编辑区:用于编写代码的区域。 调试区:用于输出和显示调试信息的区域。 实用区:用于显示属性和提供xib类库的区域。 工具栏:可以选择运行的设备等。...注意:如果在watch窗口想查看寄存器的内容,可以将左下角的Auto选成All。 二、断点 说了一些简单的使用下面进入正题,调试相关,首先来看下断点。...每次断点触发的时候都会输出m_text对象。 如果觉得仅仅输出对象信息不够,还想加一些自己指定的内容,可以使用Log Message。 ? 断点触发时: ?...三、常用命令 1、 p命令 Xcode里可以使用p命令查看基本数据类型的值,使用po命令查看oc对象。...简单的查看一个变量或者一个OC对象的值在watch窗口完全可以满足,但是如果需要查看一个oc对象的属性,或者一个oc对象方法的返回值怎么办呢?p和po命令后面都可以接相应的表达式,如: ?

    6.5K71

    微信小游戏的内存调优指南

    使用它可以比较操作之前和之后的两个(或多个)内存快照。通过检查释放的内存中的增量和引用计数,可以确认内存泄漏的存在和原因。 Containment允许浏览堆内容。...(global property) – 全局对象和其引用对象的中间对象。 (roots) – 引用了所选对象的实体对象。引用可能被浏览器引擎出于自身目的所创建。...(array, string, number, regexp) – 具有引用数组,字符串,数字或正则表达式的属性的对象类型的列表。 (compiled code) – 所有与编译代码相关的内容。...之后在微信开发者工具中的调试器的 Memory 中,Load 拷贝出的Heap Snapshot 文件,就可以查看 V8 的内存快照了,效果如下图所示: 3.3 PerfDog的使用说明 各个参数信息和使用说明详见...在曲线上鼠标点击某一点,可查看该时刻内存中的详细资源文件列表和统计图。 点击“对比” ,可在内存指标曲线上选择两个时刻,对比两个时刻的内存资源文件的差异,差异文件以占用内存大小排序。

    2.5K40

    iOS各种调试技巧豪华套餐

    根本就不需要print啊NSLog嘛,直接在断点的Action打印就好了(其实这个是Xcode和调试器结合的高能产物,下面再介绍)。具体可以这样: 图11 ?...毕竟ARC并没有完全排除内存泄露的可能性,或者试图访问一个被release的对象。为了这个目的,我们可以很艺术地偷窥对象正在做些什么,想想就好有快感。...因为Xcode知道这个对象是什么,所以可以让我们知道这个对象在哪里,以及这是什么时候发生的。 所以Zombies是你的好基友!他可以让你输出的信息更具体!! 具体这样做: 图15 ?...展示约束:展示选中视图的约束。 重置查看区域:将3D渲染透视图恢复至默认状态。 调整查看模式:选择性地展示3D渲染透视图,比如仅展示内容,仅展示框架以及同时展示内容和框架。...在左侧的文档概览面板中,展开Second View Controller的视图对象以查看子视图的排序。 Xcode在文档概览中按照递升顺序堆叠视图,换句话说,列表顶层的视图是视图层次的基础。

    1.9K90

    iOS各种调试技巧豪华套餐

    根本就不需要print啊NSLog嘛,直接在断点的Action打印就好了(其实这个是Xcode和调试器结合的高能产物,下面再介绍)。具体可以这样: 图11 ?...毕竟ARC并没有完全排除内存泄露的可能性,或者试图访问一个被release的对象。为了这个目的,我们可以很艺术地偷窥对象正在做些什么,想想就好有快感。...因为Xcode知道这个对象是什么,所以可以让我们知道这个对象在哪里,以及这是什么时候发生的。 所以Zombies是你的好基友!他可以让你输出的信息更具体!! 具体这样做: 图15 ?...展示约束:展示选中视图的约束。 重置查看区域:将3D渲染透视图恢复至默认状态。 调整查看模式:选择性地展示3D渲染透视图,比如仅展示内容,仅展示框架以及同时展示内容和框架。...在左侧的文档概览面板中,展开Second View Controller的视图对象以查看子视图的排序。 Xcode在文档概览中按照递升顺序堆叠视图,换句话说,列表顶层的视图是视图层次的基础。

    1.4K20

    汇编寄存器的规则

    其中一些值按原样传递,而一个参数存储在局部变量中,然后在函数中作为参数引用。 但是,通过汇编查看代码时,计算机并不关心变量的名称 (name); 它只关心该变量在内存中的位置。...必须在函数调用开始时停止以查看或修改参数,而不必实际进入程序集。 # Objective-C 和寄存器 如上一节所述,寄存器使用特定的调用规则。 您也可以将该知识其应用于其他语言。...随后是一个选择器,它只是一个 char *,用于指定在对象上调用的方法的名称。 最后,如果选择器指定应有参数,则 objc_msgSend 在函数中采用可变数量的参数。...有时使用寄存器和断点很有用,以便获得内存中还存在的对象的引用。例如,如果您想将前部 NSWindow 更改为红色,但是在代码中没有对该视图的引用,又不想重新编译任何代码怎么办?...如果知道了一个内存地址,你应该显示地强转为你想要的类型。不然 Swift 调试器没有任何线索去解释内存地址。 话虽这么说,但是 Swift 使用了相同的寄存器调用规则。 但是有一个非常重要的区别。

    2.6K50

    XcodeXcode 9 的全新功能您会喜欢的工具。内建 Interface BuilderXcode IDE

    全新的源代码管理导航器凸显了我们对 Git 的支持:您可以快速浏览每个分支,标签及遥控提交更改的计划表;检查某一条目以查看所有受影响的文件,或双击某次提交以查看所有更改内容;如创建和合并分支等常见操作也能在导航器中快速访问...Apple LLVM 编译器技术可解析代码,使您在 LLDB 调试器中看到的每个符号都与编辑器和编译器中的内容保持一致。当您打字时,同一引擎持续处于工作状态,查找错误并提供代码错误修复。...自动布局基于这样一种概念:界面中的每个对象均可定义约束条件,用于控制其对父视图和其他界面控件的响应。例如,当显示不同语言时,可以让按钮优先保持特定大小或扩展以容纳更大的文本。...图形调试器 在 Xcode 编辑器内直接调试 app。将鼠标悬停在任何变量上可深入分析其内容,使用 Quick Look 可查看其中包含的数据,或者右键点按将变量添加到监测列表中。...Xcode 显示着色器的信息,还可以直观地构建帧在 Xcode 调试器中组合的方式。

    8.3K30

    如何在Electra越狱的设备上使用LLDB调试应用程序

    因此我决定写一篇相关的指南,经过我的测试它非常的适用于我,但我无法确定它是否同样适用于你。...从Xcode将debugserver部署到你的设备 首先,通过ssh连接到你的iOS设备,查看/Developer/usr/bin/debugserver是否存在。...如果不存在则, 在Mac上运行Xcode 为iOS打开ObjC项目(或从头创建一个新项目) 保持Xcode运行状态。将你的iOS设备连接到USB。...在iPhone的控制台中运行 ? 如果你看到和我类似的内容 ? 则表明运行一切正常。现在,在Mac上打开另一个控制台,然后运行 ? 在LLDB控制台中运行 ? 重要提示!...如果你遇到了错误则, 在没有调试器的情况下运行应用程序 如前一节所述,将调试器attach到应用程序 关闭(LLDB)应用程序 尝试在调试器下再次运行应用程序 *参考来源:kov4l3nko,FB小编

    2.3K40

    lldb 入坑指北(1) - 给Xcode批量添加启用&禁用断点功能

    如果给 Xcode 批量添加启用&禁用断点功能,是否会提高你的工作效率? 如果都是NO,那么,请先阅读 与调试器共舞 - LLDB 的华尔兹[1] 后再回来阅读本文章。...阅读本文需要以下技能: 对 Python 有基本的了解 对 Xcode 的断点功能有基本的了解(相关的文档可以参考 Xcode 断点文档[2]) 通过本文,希望大家可以了解以下内容: 了解 lldb 的...API 架构 通过 lldb 相关 API,构建自己的效率工具(Python 脚本) 入门 LLDB LLDB 是一个开源调试器,它已经被内置在 Xcode 程序中。...如下图所示,位于主窗口的底部,名为Conseole的窗口就是用于和 lldb 交互的区域。 ? x 断点 首先,我们先通过以下步骤对 lldb 进行初步的了解。...debugger 是 lldb.SBDebuggerlldb.SBDebugger-class[3] 的一个实例,代表了当前的调试器对象。

    1.1K10

    如何解决Xcode中的SIGABRT错误

    iOS使用一种称为键值编码的机制来检查视图控制器具有的属性,因此它可以使用这些属性来引用其基于XIB创建的UI元素。 您现在如何解决该错误?...这是您的应用程序运行时在Xcode底部,控制台或调试输出区域中看到的内容。您经常在这里看到调试消息,但是您知道也可以使用它来输入命令吗? 下次您的应用崩溃时,请尝试输入helpLLDB。...您可以键入bt以查看当前的调用堆栈(也称为“ backtrace”或“ stacktrace”)。这是运行到当前崩溃的所有功能的列表。此跟踪通常包括导致错误的功能。...一个异常断点时的异常在你的代码出现被触发。您无需指示调试器在哪一行上触发断点,而是指示调试器暂停代码执行以防出现异常。 发生异常时,异常断点对于检查代码很有用。...现在,您可以使用调试器检查值,单步执行代码并使用LLDB命令。如果可能,Xcode将带您到引起异常的代码行。 请记住,异常并不一定会使您的应用程序崩溃!

    6.1K20

    XCode调试器LLDB

    LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。...(这里有一个关于调试器如何工作的总体的解释。) 你以前有可能已经使用过调试器,即使只是在 Xcode 的界面上加一些断点。但是通过一些小的技巧,你就可以做一些非常酷的事情。...与此同时,让我们以在调试器中打印变量来开始我们的旅程吧 基础 这里有一个简单的小程序,它会打印一个字符串。注意断点已经被加在第 8 行。断点可以通过点击 Xcode 的源码窗口的侧边槽进行创建。...什么是 print 命令 考虑一个有意思的表达式:p count = 18。如果我们运行这条命令,然后打印 count 的内容。我们将看到它的结果与 expression count = 18 一样。..." 实际上,我们想看的是对象的 description 方法的结果。

    1.4K30

    XCode调试器LLDB

    LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。...(这里有一个关于调试器如何工作的总体的解释。) 你以前有可能已经使用过调试器,即使只是在 Xcode 的界面上加一些断点。但是通过一些小的技巧,你就可以做一些非常酷的事情。...与此同时,让我们以在调试器中打印变量来开始我们的旅程吧 基础 这里有一个简单的小程序,它会打印一个字符串。注意断点已经被加在第 8 行。断点可以通过点击 Xcode 的源码窗口的侧边槽进行创建。...什么是 print 命令 考虑一个有意思的表达式:p count = 18。如果我们运行这条命令,然后打印 count 的内容。我们将看到它的结果与 expression count = 18 一样。..." 实际上,我们想看的是对象的 description 方法的结果。

    1.3K60
    领券