自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(656)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS swift Generics 通用类型

文章目录1.官网文档2.举例Moya1.官网文档Generics – The Swift Programming Language2.举例Moya@frozen public enum Result<Success, Failure> where Failure : Error { /// A success, storing a `Success` value. case success(Success) /// A failure, storing a `

2021-07-27 16:44:59 2

原创 iOS 设计模式面试总结

返回上级目录:iOS面试专题一1.请手写单例实现2.你都知道哪些设计原则,请谈谈你的理解六大设计原则3.能否用一幅图简单的表示桥接模式的主体结构4.UI事件传递机制是怎样实现的?你对其中运用到的设计模式是怎样理解的?...

2021-07-27 13:53:18 2

原创 iOS 设计模式 单例 命令

返回上级目录:iOS面试专题一1.单例爱奇艺代码为了规避循环调用,用super,而不是self#import "Mooc.h"@implementation Mooc+ (id)sharedInstance{ // 静态局部变量 static Mooc *instance = nil; // 通过dispatch_once方式 确保instance在多线程环境下只被创建一次 static dispatch_once_t onceToke

2021-07-27 11:33:08 4

原创 iOS 设计模式 桥接 适配器

返回上级目录:iOS面试专题一文章目录1.桥接1.1 面试题1.2 代码示例2.适配器1.桥接1.1 面试题你是怎样理解桥接设计模式的?同一个列表,网络数据变了三次,这三套数据是需要并存的,设计方案和思路?桥接模式可以解除列表和多套数据间耦合的问题抽象类A有一个成员变量是抽象类B(桥接模式的核心实现)类A有三个具体的子类A1,A2,A3。B类也有三个具体的子类B1,B2,B3上面的问题,列表可以看成是A2, 网络数据分别为B1,B2,B3。 就可以解决上面列表和三套数据耦合

2021-07-27 10:41:54 5

原创 iOS 设计模式 六大设计原则 责任链

返回上级目录:iOS面试专题一文章目录1.单元职责2.开闭3.接口隔离4.依赖倒置5.里氏替换6.迪米特法则1.单元职责2.开闭3.接口隔离4.依赖倒置5.里氏替换6.迪米特法则

2021-07-27 08:09:15 21

原创 xcode项目无法运行,运行编译按钮都点不了

文章目录解决办法解决办法

2021-07-26 17:27:32 1

原创 iOS 网络相关面试总结

返回上级目录:iOS面试专题一文章目录1.HTTP中的GET和POST方式有什么区别?2.HTTPS连接建立流程是怎样的?4.简述TCP的慢开始过程1.HTTP中的GET和POST方式有什么区别?get:幂等的,可缓存的,不安全的。 post:不幂等的,不可缓存的2.HTTPS连接建立流程是怎样的?非对称加密,对称加密4.简述TCP的慢开始过程...

2021-07-26 14:02:57 6

原创 Session/Cookie

返回上级目录:iOS面试专题一1.HTTP协议无状态特定的补偿2.Cookie2.Session

2021-07-26 13:55:40 6

原创 DNS解析

返回上级目录:iOS面试专题一1.解析查询方式1.1 递归查询:你给我问一下再告诉我1.2 迭代查询:你告诉我谁知道,我去问2.常见问题2.1 DNS劫持2.2 DNS解析转发3.怎样解决DNS劫持?3.1 httpDNS3.2 长连接...

2021-07-26 11:30:56 7

原创 408 传输层 TCP/UDP

返回上级目录:408笔记-计算机网络(视频)

2021-07-26 11:19:45 5

原创 iOS TCP/UDP

返回上级目录:iOS面试专题一文章目录0.UDP:用户数据报协议0.1 面向报文0.2 复用,分用0.3 差错检测1.TCP:传输控制协议1.1 面向连接:三次握手,四次挥手1.2 可靠传输1.3 流程控制1.4 拥塞控制0.UDP:用户数据报协议0.1 面向报文0.2 复用,分用0.3 差错检测1.TCP:传输控制协议1.1 面向连接:三次握手,四次挥手1.2 可靠传输1.3 流程控制1.4 拥塞控制...

2021-07-26 09:30:45 7

原创 HTTPS与网络安全

返回上级目录:iOS面试专题一1.SSL/TLS2.连接建立流程3.会话密钥4.加密手段4.1 对称加密4.2 非对称加密

2021-07-26 08:43:30 10

原创 iOS 网络 HTTP(Hyper Text Transfer Protocol)超文本传输协议

返回上级目录:iOS面试专题一文章目录1.HTTP2.请求/响应报文3.GET和POST方式的区别4.安全性5.幂等性6.可缓存性7.状态码8.连接建立流程9.HTTP的特点10.持久连接11.抓包,中介人攻击1.HTTP2.请求/响应报文3.GET和POST方式的区别4.安全性5.幂等性6.可缓存性7.状态码8.连接建立流程9.HTTP的特点10.持久连接11.抓包,中介人攻击...

2021-07-24 07:54:28 29

原创 iOS 多线程面试问题总结

返回上级目录:iOS面试专题一1.怎样用GCD实现多读单写?2.几种多线程技术3种,GCD,NSOperation,NSThread. 我们一般用GCD用来实现一些简单的线程同步,包括一些子线程的分配,包括实现多读单写问题的解决。NSOperation,比如第三方框架AFNetworking,包括SDWebImageView都用到NSOperation, 由于他的特点是可以对任务的状态进行控制,可以添加移除依赖。NSThread我们往往用他来实现一个常驻线程3.移除以kvo的方式通知NSOper

2021-07-23 12:55:27 18

原创 iOS 多线程和锁

返回上级目录:iOS面试专题一你在开发过程中使用过哪些锁,你又是怎样使用的呢1.有哪些锁2.@synchronized: 同步锁在创建单例对象的时候使用,来保证在多线程环境下,创建对象是唯一的3.atomic赋值可以保证线程安全,使用不能保证线程安全4. OSSpinLock:自旋锁其他锁可能会释放当前资源对引用计数进行+1,-1操作。可能用到自旋锁,系统源码中(通过分析runtime的源码,了解到系统使用自旋锁的情况)5.NSLock处理线程同步问题,保证各

2021-07-23 12:31:17 19 2

原创 ios 多线程 NSThread

返回上级目录:iOS面试专题一1.NSThread启动流程常驻线程问(高频考点):如果通过NSThread,结合RunLoop来实现一个常驻线程2.start问(高频考点):NSThread的内部实现机制,start方法的内部实现原理,逻辑流程gnustep-base-1.24.9: 来源GNUstep,苹果的源码不公开,但是GNUstep中和源码的大体实现逻辑基本上是一致的,可以通过对GNUstep的相关源码分析,来了解NSThread的内部实现机制GNUstep Downloads

2021-07-23 09:45:58 11

原创 iOS NSOperation NSOperationQueue

返回上级目录:iOS面试专题一1.NSOperation的优势和特点问:用NSOperation去实现多线程他有哪些优势和特点下面的这些特点是GCD和NSthread所不具备的最大并发量设置为1,相当于是串行isFinished: 当前任务是否已经完成滴滴公司2.状态控制:源码分析源码分析基于gnustep-base-1.24.9这个版本2.1 重写main函数,系统为我们维护了任务执行状态的变更。重写start,就得自己控制任务状态下面是[self _finis

2021-07-23 09:27:59 8

原创 ios swift蓝牙:连接过程中停止搜索会导致连接失败

API MISUSE: Cancelling connection for unused peripheral <CBPeripheral: 0x2814a1180, identifier = AD9149AF-46BD-E9AE-7100-A3A11B3AB3E2, name = Meek, state = connecting>, Did you forget to keep a reference to it?

2021-07-22 17:40:17 12

原创 ios 隐藏UIBarButtonItem

navigationItem.leftBarButtonItem = nil实例: //true表示还没有设备,需要添加 var isAddView:Bool = false { willSet { if newValue { rootView.isHidden = true navigationItem.leftBarButtonItem = nil

2021-07-22 12:30:04 5

原创 iOS swift block防止循环引用

override func viewWillDisappear(_ animated: Bool) { //如果不stop,可能导致扫描到外设的时候,block调用时vc为nil,导致程序崩溃 XYCentralManager.shared.stopScan() } @objc func rightBarBtnItemClick(){ isSearch = false weak var vc = self XY...

2021-07-21 12:34:01 5 1

原创 iOS 多线程 GCD(日常开发中使用频度最多的多线程技术方案)

返回上级目录:iOS面试专题一1.简介2.同步串行2.1 死锁3.同步并发4.异步串行5.异步并发

2021-07-21 07:58:06 42 1

原创 iOS 循环引用 未解决的问题

demo:CircularReference - gitee运行上面的demo如下图,如果进入这个界面后,直接点击返回,定时器会停止,radarView会被释放。如果进来后,先点右边的刷新按钮,然后在点返回,定时器不会停止,radarView也不会被释放。这是为何?...

2021-07-20 16:26:28 12

原创 iOS Block面试总结

返回上级目录:iOS面试专题一1.什么是Block?2.为什么Block会产生循环引用?3.怎样理解Block截获变量的特性?4.你都遇到过哪些循环引用?你又是怎样解决的?

2021-07-20 12:23:17 14

原创 iOS Block的循环引用

返回上级目录:iOS面试专题一1.截获变量循环引用_array: strong_strBlk: copy截获变量会连同属性关键字一起截获,_array的属性关键字是strong, 所以block会有一个strong类型的指针指向当前对象为什么这样block就会持有self– 避免产生循环引用– 连同所有权修饰符一起截获,在block结构体中所持有的成员变量也是__weak类型的2.__block循环引用...

2021-07-20 11:31:15 18

原创 iOS Block的内存管理

返回上级目录:iOS面试专题一1.不同类型的block2.Block的Copy操作问:我们在何时需要对block进行copy操作?虚线框内会被销毁2.1 栈上block的copy2.2 栈上__block变量的Copy如果已经copy过,我们改变栈上的__block,通过__forwarding指针实际是改的堆上的__block2.3 __forwarding总结_blk: 会copymultiplier = 6. 是对对象的成员变量multiplier进行赋值。如果没

2021-07-20 11:04:50 8

原创 iOS __block修饰符

返回上级目录:iOS面试专题一文章目录1.什么情况下需要使用__block2.笔试题的坑:对被截获变量赋值才需要__block3.那些变量需要__block,那些不需要4.笔试题1.什么情况下需要使用__block我们在什么场景下需要使用__block修饰符?2.笔试题的坑:对被截获变量赋值才需要__block只是使用array,不需要加__block对array进行了赋值,需要加__block3.那些变量需要__block,那些不需要需要不需要:静态局部变量是以指针的形式,操

2021-07-20 10:12:24 10

原创 iOS block截获变量

文章目录1.笔试题2.截获不同变量类型2.1 源码解析2.2 测试1.笔试题滴滴的笔试真题2.截获不同变量类型关于block的截获特性你是否有了解,block的截获变量特性是怎样的?2.1 源码解析clang -rewrite-objc -fobjc-arc file.m2.2 测试...

2021-07-20 09:49:17 19

原创 iOS 什么是Block

文章目录1.什么是Block1.1 源码分析2.1 MCBlock.cpp1.2 总结2.什么是Block调用2.1 Block调用的本质:源码解析1.什么是BlockBlock是将函数及其执行上下文封装起来的对象。1.1 源码分析通过clang的一个编译器命令来查看编译之后的文件内容clang -rewrite-objc file.m2.1 MCBlock.cppI_MCBlock_method: I(当前类的实例方法),MCBlock(类名)1.2 总结Blo

2021-07-20 09:23:46 17

原创 iOS RunLoop面试总结

返回上级目录:iOS面试专题一文章目录1.什么是RunLoop,他是怎样做到有事做事,没事休息的?2.RunLoop和线程是什么关系?3.怎样实现一个常驻线程?4.怎样保证子线程数据回来更新UI的时候不打断用户的滑动操作?1.什么是RunLoop,他是怎样做到有事做事,没事休息的?2.RunLoop和线程是什么关系?3.怎样实现一个常驻线程?4.怎样保证子线程数据回来更新UI的时候不打断用户的滑动操作?...

2021-07-19 12:59:48 14

原创 iOS RunLoop与NSTimer RunLoop与多线程

返回上级目录:iOS面试专题一文章目录1.RunLoop与NSTimer1.1 CFRunLoopAddTimer源码分析2.RunLoop与多线程2.1 怎样实现一个常驻线程2.1.1 实例代码MCObject.m1.RunLoop与NSTimer我们的线程,或tableView,正常情况下是运行在default模式下。当我们对tableView进行滑动的时候,会进行一个Mode的切换,会切换到Tracking模式上。多个mode是为了对timer/observer/source进行一个隔离。 t

2021-07-19 12:51:51 34 2

原创 iOS RunLoop 数据结构 事件循环的实现机制

返回上级目录:iOS面试专题一文章目录1.数据结构1.1.CFRunLoop1.1.1.CFRunLoopMode1.1.2.CFRunLoopSource1.1.3.CFRunLoopTimer:基于事件的定时器1.1.4.CFRunLoopObserver1.数据结构NSRunLoop位于Foundation框架中,CFRunLoop位于CoreFoundation中。CFRunLoop苹果是开源的1.1.CFRunLooppthread: 是C级别的一个线程对象,线程和runloop

2021-07-19 10:12:48 23

原创 iOS 什么是RunLoop?

返回上级目录:iOS面试专题一什么是RunLoop,RunLoop的实现机制是怎样的?如何实现一个常驻线程?1.什么是RunLoop?RunLoop是通过内部维护的事件循环来对事件/消息进行管理的一个对象1.1 什么是事件循环?Event Loop没有消息需要处理时,休眠以避免资源占用有消息需要处理时,立刻被唤醒维护的事件循环可以用来不断的处理消息或者说事件,然后对他们进行管理。同时当没有消息需要处理时,会发生从用户态到内核态的切换。由此可以进行当前线程的休眠,避免资源占用。当有

2021-07-19 08:46:46 12

原创 iOS oc NSString转int

NSString *stringInt = @“120”;int ivalue = [stringInt intValue];参考博客:IOS Int 转NSNumber NSString转int

2021-07-17 11:37:30 8

原创 iOS 定时器

文章目录1.timeInterval(swift),timerWithTimeInterval(oc)2.scheduledTimer(swift),scheduledTimerWithTimeInterval(oc)3.参考博客:1.timeInterval(swift),timerWithTimeInterval(oc)swift func testTimer(){ let timer = Timer.init(timeInterval: 1, target: self, selector:

2021-07-17 11:12:52 10

原创 ios oc UIView获取设置宽高 view.x view.y view.width view.height

UIView+Frame.h#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN@interface UIView (Frame)@property (nonatomic,assign) CGFloat x;@property (nonatomic,assign) CGFloat y;@property (nonatomic,assign) CGFloat width;@property (nonatomic,assign) CGF.

2021-07-17 10:21:49 16

原创 iOS swift 配置状态栏颜色

preferredStatusBarStyle: UIStatusBarStyleView controller-based status bar appearance : YES

2021-07-16 19:36:27 21

原创 iOS init 指定初始化函数

Required Initializers – Required InitializersiOS: 聊聊 Designated Initializer(指定初始化函数)

2021-07-16 16:07:28 13

原创 Mac安装PHP运行环境

Mac安装PHP运行环境安装HomeBrew 失败的解决方案(Error: Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core failed!)

2021-07-16 15:47:07 13

原创 mac 系统使用brew安装nginx error

安装ruby on rails一直报Unable to download data from https://rubygems.org/的解决方案

2021-07-16 15:15:54 19

原创 iOS 内存管理 面试题总结

返回上级目录:iOS面试专题一文章目录1.什么是ARC?2.为什么weak指针指向的对象在废弃之后会被自动置为nil?3.苹果是如何实现AutoreleasePool的?4.什么是循环引用?你遇到过哪些循环引用,是怎样解决的?1.什么是ARC?ARC是由LLVM编译器和runtime共同协作来为我们实现自动引用计数的管理2.为什么weak指针指向的对象在废弃之后会被自动置为nil?当对象被废弃时,dealloc方法的内部实现中,会调用清楚弱引用的方法,在清楚弱引用的方法中会通过hash算法来查找

2021-07-16 09:57:34 14

蓝牙self.zip

iOS蓝牙工具类oc版,包括检查蓝牙状态,搜索,连接,收发数据。

2019-10-25

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除