iOS
fayxjc
一路高歌
展开
-
Cocoa pod使用
创建静态库工程 直接使用 pod lib create SDKLib 库名称 这样直接创建出Example、.gitignore、等等原创 2018-11-29 11:30:54 · 93 阅读 · 0 评论 -
Xcode - 常见编译问题
1、引用#include <libxml/tree.h>报错缺少libxml2.tbd 在BuildPhases内引入配置libxml2库路径 在BuildSettings里面设置Header Search Path 和 Library Search Path原创 2018-11-13 15:59:03 · 256 阅读 · 0 评论 -
Xcode - 常见编译错误Error - Pods
1、pod init后打开workspace编译,报错:pod library not found for -lARThirdTools这是因为未将pod库加入到Library search paths 导致没找到库将 $(inherited) 加入到 Library search paths...原创 2018-11-29 17:27:03 · 219 阅读 · 0 评论 -
Pod使用
1、项目集成Pod到项目目录下执行初始化,生成Podfile和Pods文件夹Pod init2、执行Pod安装,生成 XXX.xcworkspacePod install3、接下来修改Podfile,添加需要的依赖包# Uncomment the next line to define a global platform for your project# platform :i...原创 2019-03-01 16:07:57 · 536 阅读 · 0 评论 -
Xcode-常用快捷键
1、替换文字时,按住option键可以把在选中的文字中进行替换2、原创 2019-01-22 09:37:18 · 83 阅读 · 0 评论 -
OC-常用数据处理函数
#include <math.h> double floor(double x);float floorf(float x);long double floorl(long double x);double floor(double x);double ceil(double x);使用floor函数。floor(x)返回的是小于或等于x的最大整数。如: flo...原创 2018-11-29 17:26:54 · 420 阅读 · 0 评论 -
iOS-keyboard关闭
resignFirstResponder 这种方式都需要知道对应的编辑控件才能调用在视图控制器里面调用[self.view endEditing:YES];在视图控制器获取困难的时候用,在视图控制器里面也能用[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:ni...原创 2018-11-05 15:54:09 · 453 阅读 · 0 评论 -
iOS - 内存
oc对象需要进行内存管理,非oc对象不需要进行内存管理,比如基本数据类型1、堆栈区别:堆空间的内存是动态分配的,一般存放对象,并且需要手动释放内存。若程序员不释放,则可能会引起内存泄漏。堆都是动态分配的,没有静态分配的堆。栈空间的内存由系统自动分配,一般存放局部变量等,不需要手动管理内存。栈有两种分配方式:静态分配和动态分配.静态分配是编译器完成的,比如局部变量的分配.动态分配由all...原创 2018-11-29 17:26:45 · 102 阅读 · 0 评论 -
iOS-内存优化
1、用ARC管理内存2、在正确的地方使用 reuseIdentifier,比如tableviewcell复用3、避免过于庞大的XIB/Storyboard。载入时就会将XIB/storyboard需要的所有资源,包括图片全部载入内存,即使未来很久才会使用。那些相比纯代码写的延迟加载,性能及内存就差了很多。4、延迟加载。- 对于不应该使用的数据,使用延迟加载方式。- 对于不需要马上显示的...原创 2018-11-29 17:27:21 · 119 阅读 · 0 评论 -
iOS-动画
1、动画有两种基本类型:UIView动画,又称隐式动画,动画后frame的数值发生了变化.CALayer动画,又称显示动画,动画后模型层的数据不会发生变化,图形回到原来的位置。2、Quatrz 2D的绘图功能的三个核心概念是什么并简述其作用。上下文:主要用于描述图形写入哪里路径:是在图层上绘制的内容状态:用于保存配置变换的值、填充和轮廓, alpha 值等...原创 2018-10-30 15:30:13 · 124 阅读 · 0 评论 -
iOS-网络请求
1、NSURLConnection,NSURLSession 区别1、NSURLSession支持http2.02、NSURLConnection下载文件时,先是将整个文件下载到内存,然后再写入到沙盒,如果文件比较大,就会出现内存暴涨的情况。而使用NSURLSessionUploadTask下载文件,会默认下载到沙盒中的tem文件中,不会出现内存暴涨的情况,但是在下载完成后会把tem中的临时...原创 2018-10-30 15:28:33 · 464 阅读 · 0 评论 -
iOS-线程
1、线程安全方式:1)nonatomic atomic:使用atomic多线程原子性控制,atomic的原理给setter加上锁, getter不会加锁。OC在定义属性时有nonatomic和atomic两种选择atomic:原子属性,为setter方法加锁(默认就是atomic)nonatomic:非原子属性,不会为setter方法加锁2)GCD实现单例+ (instance...原创 2018-10-30 15:08:42 · 117 阅读 · 0 评论 -
iOS - define、 static、extern
oc对象需要进行内存管理,非oc对象不需要进行内存管理,比如基本数据类型1、堆栈区别:堆空间的内存是动态分配的,一般存放对象,并且需要手动释放内存。若程序员不释放,则可能会引起内存泄漏。堆都是动态分配的,没有静态分配的堆。栈空间的内存由系统自动分配,一般存放局部变量等,不需要手动管理内存。栈有两种分配方式:静态分配和动态分配.静态分配是编译器完成的,比如局部变量的分配.动态分配由all...原创 2018-11-29 17:27:12 · 130 阅读 · 0 评论 -
iOS-block
1、block为什么用copy?block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈上的,而不是在堆上。他本身的作于域是属于创建时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。因为栈区的特点就是创建的对象随时可能被销毁,一旦被销毁后续再次调用空对象就可能会造成程序崩溃,在对block进行copy后,block存放在堆...原创 2018-10-30 15:03:19 · 93 阅读 · 0 评论 -
iOS-Runtime
6、Runtimeruntime就是运行时机制,可以通过命令行clang -rewrite-objc 对应的目标文件,就能将对应的OC的代码转成对应的运行时的代码所有的OC类和对象,在runtime层都是用struct表示的.用处:1、在category中想添加属性,则可与使用runtime动态添加。objc_setAssociatedObject(self, @selector(s...原创 2018-10-30 15:00:21 · 187 阅读 · 0 评论 -
iOS-view相关
1、layoutSubviews运行时机:1、直接调用[self setNeedsLayout]; setNeedsLayout方法并不会立即刷新,立即刷新需要调用layoutIfNeeded方法!2、addSubview的时候。init初始化不会触发layoutSubviews。3、当view的size发生改变的时候,前提是frame的值设置前后发生了变化。4、滑动UIScrollVi...原创 2018-10-30 14:53:45 · 106 阅读 · 0 评论 -
iOS-沙盒机制(Sandbox)
沙盒也叫沙箱,英文standbox,其原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。在沙盒机制下,每个程序之间的文件夹不能互相访问。iOS系统为了保证系统安全,采用了这种机制iOS 应用程序在安装时,会创建属于自己的沙盒文件,应用程序不能直接访问其他应用程序的沙盒文件,当应用程序需要向外部请求或接收数据时,都需要经过权限认证,否则,无法获取到数据。应用程序中所有的非代码文件都...原创 2018-11-29 17:27:30 · 254 阅读 · 0 评论