
OC
文章平均质量分 69
仰望星空01
不负韶华,砥砺前行!
展开
-
NSCache、NSDictionary、NSArray对比
NSCache、NSDictionary、NSArray1.NSArray 作为一个存储对象的有序集合,可能使用最多的集合类性能特征:在数组的开头和结尾插入删除通常是直接操作O(1),而随机的插入和删除通常是O(n)2.NSDictionary中的键是被拷贝的并且需要是恒定的,如果在一个键在被用于字典中放入一个值后被改变,那么这个值可能就会变得无法获取了。一个有趣的细节,在NSDictionary中键是被拷贝的,而在使用一个tool-free桥接的CFDictionary时却是被retain。Cor原创 2021-02-26 21:14:11 · 1000 阅读 · 0 评论 -
iOS 文件预览(PDF、Excel、World等)之QuickLook框架
iOS 文件预览QuickLookQuickLook一、简介QuickLook库可以让我们的App在iPhone/iPad中直接预览各个文件了。官方的开发文档中说明其支持的文件类型有:iWork documentsMicrosoft Office documents (Office ‘97 and newer)Rich Text Format (RTF) documentsPDF ...原创 2019-07-01 14:18:01 · 5930 阅读 · 0 评论 -
pod 组件验证常见错误
执行pod lib lint --allow-warnings 报错:- ERROR | [iOS] unknown: Encountered an unknown error (Could not find a `ios` simulator (valid values: com.apple.coresimulator.simruntime.ios-12-2, com.apple.coresi...原创 2019-07-22 17:14:33 · 2430 阅读 · 0 评论 -
iOS底层原理之KVO本质
面试中常会问道:iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)如何手动触发KVO什么是KVO首先需要了解KVO基本使用,KVO的全称 Key-Value Observing,俗称“键值观察”,我们可以用于监听某个对象属性值的改变。如下代码://// ViewController.m// KVO原理探索// Created by just so so o...原创 2019-08-26 08:18:37 · 592 阅读 · 0 评论 -
iOS NSTimer 循环引用
高逼格解决NSTimer定时器中循环引用原创 2019-08-22 13:50:47 · 722 阅读 · 0 评论 -
iOS APP启动优化
APP启动优化App启动过程什么是image(镜像)pre-main阶段main()阶段pre-main阶段的过程和优化项1、 Load dylibsRebase/Bindobjc setupInitializersmain()阶段的优化项启动耗时的测量pre-main阶段:main()阶段测量App启动过程iOS应用的启动可以分为pre-main阶段和main()阶段,其中系统做的事情一次是...原创 2019-09-05 15:23:02 · 556 阅读 · 0 评论 -
iOS Runtime几种常见的应用场景
iOS Runtime几种常见的应用场景OC的动态性场景一:防止button重复事件点击场景二:访问NSArray越界问题场景三:快速接手新工程ViewController中添加HookOC的动态性OC 的函数是属于动态调用,在编译的时候是不能决定真正去调用那个函数的,只有在运行的时候才能决定去调用哪一个函数 ,在编译阶段,OC可以调用任何的函数,即使这个函数没有实现,只要声明过也就不会报错。...原创 2019-07-15 11:11:01 · 1597 阅读 · 0 评论 -
iOS设置圆角的四种方法
iOS设置圆角的四种方法1. 设置CALayer的cornerRadius2. 设置CALayer的mask3. 通过Core Graphics重新绘制带圆角的视图4. 通过混合图层5. 总结1. 设置CALayer的cornerRadiuscornerRadius属性影响layer显示的background颜色和前景框border,对layer的contents不起作用。故一个imgView...原创 2019-04-19 11:25:55 · 4704 阅读 · 0 评论 -
UISearchBar中搜索框中右边叉号按钮事件
UISearchBarUISearchBar继承于UIView,我们可以像创建View那样创建searchBar,他是iOS系统提供给我们的搜索框;//改变左边搜索图标坐标位置。后面的占位符苹果已经做好约束总是跟随在搜索原创 2019-06-21 09:25:05 · 2489 阅读 · 0 评论 -
设置tableHeaderView中使用xib格式页面布局错乱问题
tableHeaderView第一:xib文件作为headerView的时候:frame一定要在layoutsubviews方法中,把填写的frame,重新赋值不然会造成页面显示一屏幕的bug;第二:iOS 11.0以上机型,必须要在初始化,再用View 包裹:在设置bgView.addsubView( xibView)tableview.tableHeaderView = bgView...原创 2019-06-21 09:50:34 · 696 阅读 · 1 评论 -
iOS 自动打包App Store脚本
iOS 自动打包App Store脚本自动化打包方案:xcodebuild打包详解完整的shell脚本,里面还包含上传蒲公英的内容操作说明自动化打包方案:xcodebuild打包详解使用xcodebuild自动化打包给就是用命令行来控制Xcode进行编译打包xcodebuild打包有3种,一种是adHoc测试打包ipa;一个是上传AppStore打包;一个企业级别打包。具体区别请看下面的步...原创 2019-06-21 10:25:13 · 547 阅读 · 0 评论 -
iOS SDK开发步骤
打开xcode ->选择Framework&Library中的Cocoa Touch Static Library如下图:点击Next:取工程名:YDemoSDK(根据自己需求)完成后有这几个文件删除没有必要的.m文件添加UI这里:这里以alertView 为例如图接下来就是在YDemoSDK.h 文件中引入#import “CustomIOSAl...原创 2019-06-21 10:56:19 · 8289 阅读 · 1 评论 -
UITableview优化之圆角设置
一、最简单的设置圆角 //头像圆角 icon.layer.cornerRadius = 20 icon.layer.masksToBounds = true这种设置方法会造成离屏渲染什么是离屏渲染GPU渲染机制CPU 计算好显示内容提交到 GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按照 VSync 信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显...原创 2019-06-26 16:10:21 · 2180 阅读 · 0 评论 -
UITableview优化之Cell高度计算
cell高度一般分两种一、定高tableView.rowHeight = 80相当于方法指定了所有cell高度都是80对于定高cell,直接采用上面方式给定高度,不需要实现代理中 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) 以节省不必要的计算和开销。二、动态高度代理方法实现后,...原创 2019-06-26 16:37:21 · 633 阅读 · 0 评论 -
Xcode No account for team "". Add a new account in the Accounts preference pane or verify that your
问题描述当我们在Git上下载下来一些第三方库的时候,将签名改成自己的开发者账号仍然出现类似:Showing All Messages No account for team "8PC4X7QUY9". Add a new account in the Accounts preference pane or verify that your accounts have valid creden...转载 2019-06-24 17:15:03 · 15624 阅读 · 0 评论 -
iOS 调用系统分享
调用系统分享框架Social.framework利用系统分享内容如下自定义UIActivity框架Social.framework导入框架Social.framework,集成系统分享时候我们会用到UIActivityViewController这个类的。利用系统分享内容如下fileprivate func systemShareAlert() { let url = U...原创 2019-07-04 12:37:20 · 2380 阅读 · 0 评论 -
iOS Hook之runtime
一、Hook概述Hook(钩子) 其实就是改变程序执行流程的一种技术的统称!Hook 技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。要实现钩子函数,有两个步骤:利用系统内部提供的接口,通过实现该接口,然后注入...原创 2019-07-15 10:00:02 · 986 阅读 · 0 评论 -
iOS 一行代码搞定button 图文左右
iOS UIButton图片文字排版顺序iOS-UIButton的文本与图片的布局重写button按钮*setTitleEdgeInsets*和*setImageEdgeInsets*方法利用UIView属性中的:semanticContentAttributeSDAutoLayout给button重新布局iOS-UIButton的文本与图片的布局UIButton内部文本和图片的布局是我们日常...原创 2019-04-19 11:11:50 · 1909 阅读 · 0 评论