OC
闽江小张
任职于深圳某上市公司,性别男,爱好女。擅长于移动端开发,了解服务端开发、客户端开发。对iOS移动端开发、Java服务端、Swift、OC、Java、Vue、H53C等相关技术有一定见解。本人通过软考高级、中级,会计初级等职业资格证书,对相关资格考试有一定备考攻略。如有需要都可以联系我进行沟通学习。
展开
-
iOS中MapKit标记点无法响应事件
iOS中MapKit标记点无法响应事件原创 2023-02-13 21:09:42 · 257 阅读 · 1 评论 -
【iOS开发】Tableview的代理事件didSelectRowAtIndexPath无效
3.tableview的selection属性设置为none应该改为singleselection。1.没有设置tableview的Delegate需要设置tableview的代理才可以响应代理事件。4.tableview的userInteractionEnabled等于NO,失去交互能力。2.cell上添加有按钮或者其他手势等事件响应器需要判断事件究竟让谁去响应(响应链)tableview的代理事件didSelectRowAtIndexPath失效。...原创 2022-08-02 10:26:11 · 1242 阅读 · 0 评论 -
iOS原生分享UIActivityViewController
小编收集了各大博主写的一个关于原生分享和三方分享的优缺点。摘抄几个比较有用的对比图,如下图所示。具体使用系统UIActivityViewController代码如下:- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ NSString *textToShare = @"分享famisafe";//需要分享的文本内容 UIImage *imageToShare =原创 2022-05-27 14:53:23 · 1687 阅读 · 0 评论 -
iOS NDPredicate与数组过滤
在过滤数组的过程中有两种方法,一种是写for去做判断。另一种就是使用系统自带的filteredArrayUsingPredicate和predicateWithFormat这两个方法。两种方法的使用区别如下:predicateWithFormat 是无返回值过滤,在原数组内部过滤filteredArrayUsingPredicate 有返回值过滤字符串数组操作常用方法以上两种过滤方法都需要传入一个人NDPredicate也就是谓词(过滤条件)去判断。长江的过滤方法有以下三种。 /*原创 2022-05-25 14:19:16 · 683 阅读 · 0 评论 -
iOS 读取本地Json遇到的坑
一开始代码使用如下参考百度的 let path = Bundle.main.path(forResource: "cityList", ofType: "json") print(path) let url = URL(fileURLWithPath: path!) // 带throws的方法需要抛异常 do { /*原创 2021-11-23 21:31:41 · 476 阅读 · 0 评论 -
iOS 中的RunLoop
写个伪代码,我们的日常:while(活着) 有事干了 = 我睡觉去了(); if (搬砖){ 搬砖() }else if (泡妞){ 泡妞() }else{ 吃饭() }}为什么要有RunLoop?1、使程序一直运行2、使程序在那些时候处理那些Event3、调用结偶(滑动的时候不能卡住、消息队列)4、节省CPU时间于RunLoop有关系的几个东西NSTimer、UIEvent、AutoreleaseCADisplayLink、CATransition、CAAnima原创 2021-11-22 16:12:06 · 647 阅读 · 0 评论 -
【iOS紫色警告】GPUImage启动摄像头耗时
当我们pod下GPUImage 后 如果调用摄像头的代码,到启动摄像头会延迟很久,系统虽然不会报错,但是影响用户体验!!!总结下来!一共两个问题!!输出如下!!!Main Thread Checker: UI API called on a background thread: -[UIView layer] PID: 901, TID: 68934, Thread name: (none), Queue name:Main Thread Checker: UI API called on a b原创 2021-11-09 15:13:09 · 1834 阅读 · 0 评论 -
iOS 中@Property讲解
新手篇1、与多线程相关的参数atomic:默认值、安全、效率低下nonatomic:不安全但是效率高无论在MRC还是ARC都可以使用。使用建议无论是在ARC还是MRC下都建议使用nonatomic。2、retain:只能在MRC模式下使用,代表生存的setter的代码都是标准的内存管理代码。使用建议:当属性值是OC对象时,绝大多数使用retain。只有出现了循环引用的使用一边使用retain、一边使用assign。3、assign在ARC和MRC下都可以使用assign。当属性值是非OC对象原创 2021-07-30 00:08:52 · 185 阅读 · 0 评论 -
iOS内存管理
一、内存管理中的五大区域栈:局部变量,当局部变量的作用域执行完之后,这个局部变量会立即被系统回收。堆:存放OC对象、使用C函数申请的动态空间。BSS段:存放未初始化的全局变量、静态变量,一旦初始化就回收,并存储到数据段中。数据段:存放已初始化的全局变量、静态变量,直到程序介绍时才会被回收。代码段:代码,程序结束时系统会自动回收存储在代码段中的数据。栈、BSS段、数据段、代码段是由系统自动完成的。不需要人工干预。存储在堆中的对象系统不会自动回收,那么肯定需要人工回收的,总不能系统结束了才回收吧?原创 2021-07-29 23:26:01 · 290 阅读 · 0 评论 -
【四】iOS面试问题
分类(category)和类扩展(extension)的用途和区别?分类(Category)是OC中的特有语法,它是表示一个指向分类的结构体的指针。原则上它只能增加方法,不能增加成员(实例)变量。分类中的可以写@property, 但不会生成setter/getter方法。如果分类中有和原有类同名的方法, 会优先调用分类中的方法, 就是说会忽略原有类的方法。所以同名方法调用的优先级为 分类 > 本类 > 父类。分类优点:1、声明私有方法2、分解体积庞大的类文件3、把Framewor转载 2021-07-19 10:32:26 · 80 阅读 · 0 评论 -
【三】iOS面试问题
一、观察者模式(通知机制,KVO机制)观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 简而言之,就是A和B,A对B的变化感兴趣,就注册A为观察者,当B发生变化时通知A,告知B发生了变化。这个也叫做经典观察者模式。...原创 2021-07-18 14:04:12 · 63 阅读 · 0 评论 -
【二】iOS面试问题
一、什么是MVC?Model是数据层。定制数据View是现实界面。画页面以及响应单机事件等。Controller是控制层。是用于连接Model和View。二、什么是MVVM?MVVC是MVC的扩展M:Model:数据模型。定制数据、创建实体类。V:ViewController视图控制器,用来显示界面以及用户交互。VM:ViewModel业务逻辑层。用来处理ViewController上的业务逻辑和界面逻辑。如:网络请求、登陆、上传和下载。...原创 2021-07-18 10:23:56 · 92 阅读 · 0 评论 -
【一】iOS面试问题
【一】iOS面试问题一、podinstall和pod update的区别pod update当运行pod update PODNAME时, CocoaPods将尝试查找PODNAME更新的pod版本, 会忽略掉Podfile.lock中已经存在的版本.例如:pod update masonry 他就只会更新Podfile里面的masonry三方库到最新的版本,其余库都不会进行更新。前提没有加pod ‘masonry’, ‘~>1.2’这种版本限制。才会更新最新的版本。如果直接运行pod up原创 2021-07-17 23:48:04 · 154 阅读 · 0 评论