![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios
文章平均质量分 53
Army_Ma
这个作者很懒,什么都没留下…
展开
-
object-c 经典实用面试题+自己总结的答案(10)
35. NSOperationQueue 和 GCD 的区别。 NSOpertaionQueue用GCD构建封装的,是GCD的高级抽象。 GCD仅仅支持FIFO队列,而NSOperationQueue中的队列可以被重新设置优先级,从而实现不同操作的执行顺序调整。 GCD不支持异步操作之间的依赖关系设置。如果某个操作的依赖另一个操作的数据(生产者-消费者模型是其中之一),使用NSOperationQueue能够按照正确的顺序执行操作。GCD则没有内建的依赖关系支持。 NSOperationQueue支持K原创 2022-04-06 12:29:28 · 172 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(9)- 原生与WKWebview的js调用专题
34.js调用 WKWebView - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{ if ([navigationAction.request.URL.absoluteString hasPre原创 2022-04-06 12:28:36 · 260 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(8)- 算法专题
29.算法 快速排序 1 ).设置两个变量i,j ,排序开始时i = 0,就j = mutableArray.count - 1; 2 ).设置数组的第一个值为比较基准数key,key = mutableArray.count[0]; 3 ).因为设置key为数组的第一个值,所以先从数组最右边开始往前查找比key小的值。如果没有找到,j–继续往前搜索;如果找到则将mutableArray[i]和mutableArray[j]互换,并且停止往前搜索,进入第4步; 4 ).从i位置开始往后搜索原创 2022-04-06 12:26:39 · 133 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(7)- 蓝牙开发专题
28.蓝牙开发简单介绍使用. cocoa详细蓝牙使用链接 蓝牙连接可以大致分为以下几个步骤 建立一个Central Manager实例进行蓝牙管理 搜索外围设备 连接外围设备 获得外围设备的服务 获得服务的特征 从外围设备读数据 给外围设备发送数据 其他:提醒 首先我们先导入系统的BLE的框架,必须遵守2个协议 CoreBluetooth/CoreBluetooth.h /* 中心管理者 / @property (nonatomic, strong) CBCentralManager *cMgr;原创 2022-04-06 12:25:20 · 1422 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(6)
26.copy 关键字。 平时我们使用对象之间的传值都是采用retain count +1的方式,这种方式的适用于当对象的某属性的值改变时,引用该对象的不同指针会同时改变,因为这两个指针指向的是同一个内存地址, 但如果需求是,当一个指针执行的对象属性值发生改变时,不影响另一个对象,那么需要分配两个不同的内存地址,也就是说,我们就不可以采用retain关键字了,而是要采用copy关键字,因为copy关键字会在复制时重新创建一个新的对象。 各种属性定义关键字 strong :除NSString\block以原创 2022-04-05 17:20:21 · 2078 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(5)
21. 谈谈 iOS 的内存管理 iOS 的内存管理(OC)是基于引用计数的,在程序中,每一个对象都有一个与之相关联的整数,我们可以称之为引用计数器或者是保留计数器(retain counting),当我们需要使用一个对象的时候,需要将该对象的引用计数加 1, 当我们结束对一个对象的访问时,我们需要将引用计数减 1。当对象的引用计数减少为 0 的时候,系统会自动释放该对象所占用的内存,以便内存的复用。当然,想要很好地在程序中利用引用计数管理好内存是需要一定的技巧的,这里,列出三条内存管理的规则,说是规则,不原创 2022-04-05 17:18:19 · 224 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(4)
16. 在 ARC 下 不显示制定属性关键字,默认有哪些关键字。 atomic,readwrite,strong(对象),assign(基本数据类型)。 17. 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么? 因为编译后类的相关的信息已经注册在 runtime 之中了,类在运行的过程中维护类的数据结构所占的内存的大小已经确定了,此时,不可能向类中再添加具体的实例变量了; 在运行时创建的类不一样,在没有调用相应的函数(objc_registerClassPair )之前,是可原创 2022-04-05 17:17:16 · 1779 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(3)
11. 参数传入 NSError ** 12. NSObject 有没有父类。他的 super class 指向哪。isa 指向那。* NSObject没有父类,他的super class 指向nil.isa指针指向自己. OC中每个类中都包含一个isa变量,显然这里的isa是指向另一个类的指针,说白了就是表明这个类是哪个类的实例,以便找到代码中调用的本类或父类的类方法。对于NSObject及其子类,指向的就是它的元类,正如实例中也有个isa指针指向其所属的类一样。而对于元类,每个元类的isa都指向根元类。原创 2022-04-05 17:16:00 · 2855 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(2)
6. key 和 keypath 的区别 在iOS开发中经常碰到重载方法有传key和keypath两种,但是一直搞不清楚他们两的区别,最近研究了一下官网KVC编程对key和keypath的区别有了具体的认识: 例如: KVC编程时setValue(value: AnyObject?, key: String)和setValue(value: AnyObject?, keypath: String) key:只能接受当前类所具有的属性,不管是自己的,还是从父类继承过来的,如view.setValue(CGRe原创 2022-04-05 17:14:51 · 162 阅读 · 0 评论 -
iOS开发OC开发Object-C 开发实用随笔
1. 设置button文字左面 图片右面 - (void) setEdgeSet:(UIButton *)btn{ CGFloat labelWidth = [btn.titleLabel.text sizeWithAttributes:@{NSFontAttributeName:btn.titleLabel.font}].width; ; [btn setTitleEdgeInsets:UIEdgeInsetsMake(0, -12, 0, 12)]; [btn setIm原创 2022-04-04 21:05:55 · 411 阅读 · 0 评论 -
Mac Xcode开发SDK,合并真机和模拟器的SDK,上传SDK到 cocoaPods
封装SDK自动打包合并真机和模拟器 # 注意 合并后需要手动把真机的module模块内容复制到新sdk中 #!/bin/sh #要build的target名 TARGET_NAME=${PROJECT_NAME} if [[ $1 ]] then TARGET_NAME=$1 fi UNIVERSAL_OUTPUT_FOLDER="${SRCROOT}/${PROJECT_NAME}/" #创建输出目录,并删除之前的framework文件 mkdir -p "${UNIVERSAL_OUTPUT_FOL原创 2022-04-04 21:02:08 · 389 阅读 · 0 评论 -
Swift 开发实用功能随笔
1. swift print log 只在debug模式下打印 - 创建DebugLogTool类 class DebugLogTool: NSObject { static func debugLog(_ item: Any) { #if DEBUG print(item) #else #endif } } - 修改Setting Other Swift Flags Debug : -D DEBUG原创 2022-04-03 22:05:52 · 549 阅读 · 0 评论 -
object-c 经典实用面试题+自己总结的答案(1)
1. 如看看待 OC 是一门动态语言。 (转载)OC做为一门面向对象语言,自然具有面向对象的语言特性,如封装、继承、多态。他具有静态语言的特性(如C++),又有动态语言的效率(动态绑定、动态加载等)。整体来说,确实是一门不错的编程语言。 现在,让我来想想OC的动态语言特性。OC的动态特性表现为了三个方面:动态类型、动态绑定、动态加载。之所以叫做动态,是因为必须到运行时(run time)才会做原创 2022-04-02 14:15:35 · 993 阅读 · 0 评论 -
从零开始学习swift语言(Objective-C转学swift)-( 一 )简介学习背景及开发工具
简介学习背景 本人之前使用Objective-C做了三年左右的iOS开发,之前一直想学习swift语言可惜公司项目比较紧一直没有时间.现在每天倒是可以抽时间来学习swift,之后我会在这里记录下来我的学习历程,并且会列举出swift语言和Objective-C语言的差异,如果可以的话会尽量写代码来举例说明. 开发工具 Mac电脑 及 Xcode软件 相信之前接触过io原创 2017-02-27 17:55:31 · 680 阅读 · 0 评论