×

objective-c

2022年iOS最新面试(底层基础)问题答案(ios面试题及答案2020)

丶 发表于2024-04-21 浏览13571 评论0
每条题目都是自己做的,请点赞三连 Runloop 1、RunLoop 的本质是什么? 答:本质是一个OC对象,内部也有isa指针。 2、Runloop和线程是什么关系? 答:线程和 RunLoop 之间是Key-value的对应关系,是保存在一个全局的 Dictionary 里,线程是key,RunLoop是value,而且是懒加载的。 3、Runloop的底层数据结构是什么样的?有几种 运行模式(mode)?每个运行模式下面的 CFRunloopMod

objective-c

熟悉Objective-C

HappySir¹ HappySir¹ 发表于2024-04-21 浏览5977 评论0
一、Objective-C的起源 Objective-C与C++、java等面向对象语言类似,不过很多方面有所差别。 该语言使用“消息结构”而非“函数调用”Objective-C语言有Smalltalk演化而来,后者是消息型语言的鼻祖。消息与函数调用之间的区别看上去就像这样: //消息类型(OC) Object *obj = [Object new]; [obj performWith:parameter1 and:parameter2]; //函数类型(C++) object *obj

objective-c

iOS 16 Beta 2值不值得升级 iOS 16 Beta 2升级建议(ios16值得升级吗)

qidouhai qidouhai 发表于2024-04-20 浏览4891 评论0
iOS 16 Beta 2在最近能更新下载了,但很多人想知道的是iOS 16 Beta 2究竟值不值得升级,下面来看看 iOS 16 Beta 2升级建议吧。 iOS 16 Beta 2值不值得升级 苦苦等待两周后,我们迎来了iOS 16 Beta 2 。iOS 16 最主要的变化便是全新的锁屏界面,这也是iOS 16 Beta 2 重点优化的功能。 iOS 16 Beta 2 系统设置—墙纸页面小幅微调,新增「自定义」按钮,可对当前墙纸模糊化处理或替换图片等;使用双卡的 iPhone 会

objective-c

iOS常用的几种锁详解以及用法(ios常用的几种锁详解以及用法视频)

lehehe128 lehehe128 发表于2024-04-20 浏览6587 评论0
锁的种类 互斥锁 自旋锁 互斥锁:保证在任何时候,都只有一个线程访问对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒; 自旋锁:与互斥锁有点类似,只是自旋锁 不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环尝试,直到该自旋锁的保持者已经释放了锁;因为不会引起调用者睡眠,所以效率高于互斥锁; 自旋锁缺点: 调用者在未获得锁的情况下,一直运行--自旋,所以占用着CPU,如果不能在很短的时间内获得锁,会使CPU效率降低。所以自旋锁就主要用在临界区持锁时

objective-c

深复制与浅复制(深复制与浅复制的区别)

似水流年 似水流年 发表于2024-04-20 浏览5625 评论0
一、深拷贝和浅拷贝 浅拷贝:只创建一个新的指针,指向原指针指向的内存 深拷贝:创建一个新的指针,并开辟新的内存空间,内容拷贝自原指针指向的内存,并指向它 假设我们要对一个不可变的对象进行不可变copy(原来的对象不可变,新对象也不可变)。就没必要给新对象新建一块内存,反正大家都不可以对这个对象进行改变,那都使用一个就可以。所以iOS系统规定浅拷贝引用计数器加1就行。而需要给新对象开闭内存空间的,就是深拷贝。 copy得到的类型一定是不可变的 mutableCopy得到的

objective-c

iOS使用 Metrickit 收集崩溃日志

夜 发表于2024-04-19 浏览5322 评论0
iOS使用 Metrickit 收集崩溃日志 Metrickit 是什么 MetricKit 是 苹果在 iOS13系统开始引入的用来汇总和分析有关异常和崩溃诊断以及电源和性能指标的每个设备的报告。 为什么要用 MetricKit 收集崩溃日志 当前市面上的开源框架,如 KSCrash,PLCrashReport 等框架都有一些崩溃不能抓取;比如PLCrashReport 不能抓取栈溢出的崩溃,不能抓取SIGKILL, SIGQUIT等信号量的崩溃。KSCrash 对SIGKILL

objective-c

C++ open 打开文件(含打开模式一览表)(C语言用open打开文件)

Nick Nick 发表于2024-04-17 浏览9254 评论0
C++ open 打开文件(含打开模式一览表) 在对文件进行读写操作之前,先要打开文件。打开文件有以下两个目的: 通过指定文件名,建立起文件和文件流对象的关联,以后要对文件进行操作时,就可以通过与之关联的流对象来进行。 指明文件的使用方式。使用方式有只读、只写、既读又写、在文件末尾添加数据、以文本方式使用、以二进制方式使用等多种。 打开文件可以通过以下两种方式进行: 调用流对象的 open 成员函数打开文件。 定义文件流对象时,通过构造函数打开文件。 使用 open 函数打开文

objective-c

iOS 16 Beta如何降级iOS 15系统?详细图文教程!

薛崇龙₁₈₁₀₃₄₆₂₂₂₃ 薛崇龙₁₈₁₀₃₄₆₂₂₂₃ 发表于2024-04-17 浏览6375 评论0
你的iPhone升级到iOS 16 Beta版了吗?最近,不少用户表示升级后遇到了许多问题,想要从iOS 16 Beta降级到iOS 15。 今天,小编就来给大家分享一个iOS 16 Beta完美降级至iOS 15系统的方法。亲测有效,想要降级的小伙伴赶紧学起来吧! iOS 16 Beta降级iOS 15的注意事项: 无论是升级还是降级iOS 系统,建议在操作之前做好整机数据备份。避免因意外情况造成数据丢失。 iOS 16备份的数据无法恢复到iOS 15系统。如果你在安装iO

objective-c

iOS学习—添加震动效果

访客 访客 发表于2024-04-17 浏览4412 评论0
一、系统提供的几种震动方法: 导入:#import <AudioToolbox/AudioToolbox.h> 在需要出发震动的地方写上代码: AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);//默认震动效果 如果想要其他震动效果,可参考: // 普通短震,3D Touch 中 Pop 震动反馈 AudioServicesPlaySystemSound(1520); // 普通短震,3D Touch 中 Peek 震动

objective-c

MacOS开发环境搭建(mac 开发环境搭建)

LINII LINII 发表于2024-04-17 浏览5220 评论0
一.软硬件准备 MacOS电脑 Xcode软件,在AppStore中搜索Xcode并安装,安装过程比较长,需要耐心等待。 二.新建工程 打开Xcode,创建工程,选择macOS里面的App选项,点击Next 出现弹框后,输入Product Name,Organization Identifier,Language Product Name,Organization Identifier可以自定义输入,Language选择Objective-C或者Swift 点击Next 三.运行程

objective-c

pod install过程遇到的种种问题及解决办法之M1 pro(pod install 卡住)

L L 发表于2024-04-17 浏览8286 评论0
        敲重点了!!!这篇文章是以M1 pro芯片为例子的mac,并且我全程都是在科学上网的状态,所以有部分问题我可能没遇到,大家如果遇到了请切换镜像去下载即可。         如果是老版本的电脑或者英特尔芯片的电脑去进行pod要简单一些,但是部分问题的解决办法是相似的。         先说两个前提,大家知道后会减少后面遇到的问题!!!         首先第一个:mac电脑里的终端,会有两个模式:         一个是zsh模式的         和