iOS问答篇 - 知道-----------------------------------------
2022/3/22 6:28:04
本文主要是介绍iOS问答篇 - 知道-----------------------------------------,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 - 面向对象是 90 年代软件开发方法的主流,是一种设计思路,它已经扩展到很宽的范围,如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、人工智能、CAD技术等领域
2 - 初始化方法命名一般是以 init 开头,其返回值只能是 id 类型或本类对象,不能是 void。一个类可以有多种初始化方法但有且只有一个指定的初始化方法
3 - 单例模式是一种软件设计模式,在使用时,单例对象的类必须保证只有一个实例存在。它的思路是:一个类只能返回对象的一个引用(永远是同一个)和一个获得该实例的方法
4 - SEL 只是方法编号;IMP 是一个函数指针,保存了方法的地址。每一个继承于 NSObject 的类都能自动获得 runtime 的支持。在一个类中有一个 isa 指针,指向该类定义的数据结构体,在这个结构体中包括了指向其父类的指针以及 Dispatch table,Dispatch table 是一张 SEL 和 IMP 的对应表,就是说方法编号 SEL 最后还是要通过 Dispatch table 表寻找到对应的 IMP,IMP 就是一个函数指针,然后执行这个方法
5 - 野指针:对象被回收,但仍有指针指向这块内存
6 - 程序崩溃的原因,内存问题占了 90%+,主要表现为:野指针异常、内存溢出
7 - 直接赋值(assign):适用于基本数据类型,包括结构体和枚举
引用赋值(持有赋值):适用于源对象和被赋值对象需要同时修改的时候
拷贝赋值:适用于源对象不受影响,而被赋值对象需要修改的时候
8 - OC 可以使用 GCC 和 Clang 编译器进行编译
9 - OC 语言的应用环境:(1)iOS 应用程序/系统(2)Mac OS X 应用程序/系统
10 - block 相关
① block 是 C语言的扩充功能,一句话准确概括:带有自动变量值(局部变量)的匿名函数(带有自动变量值在 block 中表现为截获自动变量的值)
② block 类型变量和一般的 C语言变量完全相同,可以作以下用途:(1)自动变量(2)函数参数(3)静态变量(4)静态全局变量(5)全局变量
③ block 不管配置在何处(堆、栈或者全局),使用 copy 方法都不会引起任何问题,在不确定时调用 copy 即可
④ 在 ARC 模式下,编译器不能自行把 block 优化到堆区的状况
(1)向方法或函数的参数中传递 block 时(方法或函数不需要手动复制 block,编译器自动将 block 分配到堆区)
(2)cocoa 框架的方法且方法名中含有 usingBlock 等时,例如在使用 NSArray 类的 enumerateObjectsUsingBlock 实例方法以及 dispatch_async 函数时
(3)GCD 的 API
(4)将 block 赋值给附有 __strong 修饰符 id 类型的类或 block 类型成员变量时
(5)block 作为函数的返回值返回时
11 - ARC 机制下,可以使在栈上分配的指针隐式的初始化为 nil,如下
1 - (void)myMethod{ 2 NSString *name;// 野指针 3 NSLog(@"name is %@",name);// 在 ARC 模式下,程序运行会打印出 name:NULL,而 MRC 模式会使程序崩溃 4 }
12 - 同步和异步的区别之一就是:同步在当前线程中执行,不具备开启新线程的能力;异步在另一条线程中执行,具备开启新线程的能力
这篇关于iOS问答篇 - 知道-----------------------------------------的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12Axios库资料:新手入门必读教程
- 2024-11-11Axios库项目实战:新手入门教程
- 2024-09-29Axios库教程:初学者必备指南
- 2024-08-29Axios库资料:新手入门指南与基本使用教程
- 2024-03-14system bios shadowed
- 2024-03-14gabios
- 2024-02-07iOS应用提交上架的最新流程
- 2024-02-06打包 iOS 的 IPA 文件
- 2023-12-07uniapp打包iOS应用并通过审核:代码混淆的终极解决方案 ?
- 2023-11-25uniapp IOS从打包到上架流程(详细简单) 原创