随笔分类 -  iOS

上一页 1 2 3 4 下一页
Runtime
摘要:Runtime是什么? runtime是OC底层的一套C语言的API(引入 <objc/runtime.h> 或<objc/message.h>),编译器最终都会将OC代码转化为运行时代码,底层是通过runtime创建的对象. 另外利用runtime 可以做一些OC不容易实现的功能 .动态交换两个方 阅读全文
posted @ 2017-09-04 23:16 HJiang 阅读(253) 评论(0) 推荐(0)
Runloop运行循环的理解
摘要:runloop运行流程图 定时器 结论:如果定时器在主线程中开启,可以正常运行;定时器在子线程中开启,无法正常运行; 如果对应线程没有 RunLoop 该方法也会失效,也就是说currentRunloop中 没有timer,没有source,也没有OBServer,添加 [NSRunLoop cur 阅读全文
posted @ 2017-09-04 23:00 HJiang 阅读(580) 评论(0) 推荐(0)
GCD dispatch_apply基本使用
摘要:dispatch_apply,可以并发的循环迭代,性能上可以提高,前提是循环不在乎迭代的顺序 如果不想让在当前线程参与迭代任务,可以把整个迭代任务包含在一个新的线程中 (优先采用此方式), 如: 但此方式需要注意一个问题,就是新开的线程包含的迭代任务,不要是同一个队列,要不然整个迭代任务会在同一个线 阅读全文
posted @ 2017-09-02 21:20 HJiang 阅读(340) 评论(0) 推荐(0)
GCD信号量semaphore控制线程并发数
摘要:GCD提供了信号semaphore来控制线程并发数,提供一下三个函数 dispatch_semaphore_create(<#long value#>) // 创建信号semaphore,value参数为任务并发同时执行时线程最大并发数 dispatch_semaphore_wait(<#dispa 阅读全文
posted @ 2017-09-02 20:43 HJiang 阅读(686) 评论(0) 推荐(0)
多线程GCD dispatch_once_t/dispatch_barrier_<a>sync/dispatch_group_t
摘要:dispatch_once 在dispatch_once block中的代码在程序启动到程序退回只会执行一次,如:不管for循环多少,只会一次打印 利用dispatch_once实现单粒模式 单粒模式(不管以任何方式创建对象,内存中永远只会有且仅有一份该对象的地址) 实现单粒,需要步骤: 1.提供一 阅读全文
posted @ 2017-09-01 18:02 HJiang 阅读(274) 评论(0) 推荐(0)
iOS开发常用宏定义
摘要:单粒模式宏定义 宏中使用##,传入参数作为shared方法名称: 定义开发模式和发布模式条件宏 替换系统NSLog 阅读全文
posted @ 2017-09-01 11:04 HJiang 阅读(296) 评论(0) 推荐(0)
OC方法可变参数
摘要:OC可变参数: 使用__attribute__((sentinel))语法可以告诉编译器这是一个需要哨兵参数的函数。它的作用就是告诉函数没有参数了。这也是为什么ObjC中[NSArray arrayWithObjects: ...,nil]最后必须以nil参数结尾的原因 阅读全文
posted @ 2017-09-01 11:01 HJiang 阅读(435) 评论(0) 推荐(0)
GCD的基本使用
摘要:GCD全称Grand Central Dispatch,是Apple提供的一套底层API,提供了一种新的方法来进行并发程序编写,它的API包含在libdispatch库中. 觉得需要理解GCD中的三个要点: 1.同步异步(sync,async) sync表示同步,不会开启新线程,任务是在当前线程中执 阅读全文
posted @ 2017-08-29 14:51 HJiang 阅读(287) 评论(0) 推荐(0)
项目中实用第三方框架
摘要:综合项目 iOSProject 国内优秀框架 YYKit YYKit 是一组庞大、功能丰富的 iOS 组件。 为了尽量复用代码,这个项目中的某些组件之间有比较强的依赖关系。为了方便其他开发者使用,我从中拆分出以下独立组件: YYModel — 高性能的 iOS JSON 模型框架。 YYCache 阅读全文
posted @ 2017-08-22 17:19 HJiang 阅读(440) 评论(0) 推荐(0)
NSTimer内存泄漏问题
摘要:使用NSTimer的时候可能存储内存泄漏问题,例如:当控制器销毁时,会发现dealloc没有被调用,问题的原因在于timer对控制器对象有强引用,即使是使用了weakSelf 如需解决这个问题,就得解决问题的原因timer对target对象的强引用,方式可以修改timer的引用为间接对象target 阅读全文
posted @ 2017-08-08 19:02 HJiang 阅读(231) 评论(0) 推荐(0)
CocoaPods安装,iOS程序第三方框架的依赖管理
摘要:每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。 CocoaPods 的安装和使用介绍 安装 如果你的 gem 太老,可能也 阅读全文
posted @ 2017-07-24 12:24 HJiang 阅读(453) 评论(0) 推荐(0)
监听键盘frame变化
摘要:/** * 监听键盘的弹出和隐藏 */ - (void)keyboardWillChangeFrame:(NSNotification *)note { // 键盘最终的frame CGRect keyboardF = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; // 动画时间 ... 阅读全文
posted @ 2017-05-30 23:25 HJiang 阅读(551) 评论(0) 推荐(0)
iOS 中setNeedsDisplay,setNeedsLayout,layoutSubViews,layoutIfNeeded等一些方法的使用
摘要:layoutSubviews layoutIfNeeded setNeedsLayout setNeedsDisplay drawRect sizeThatFits sizeToFit 大概常用的上面几个 , 具体的应该还有别的。 layoutSubviews 这个方法,默认没有做任何事情,需要子类 阅读全文
posted @ 2017-03-23 23:20 HJiang 阅读(1305) 评论(0) 推荐(0)
iOS 圆角效果
摘要:方式1.(如果圆角视图比较少并且不复杂可以考虑使用) 方式2.(性能可能高点,通过画圆的方式获取image,然后再赋给视图) 阅读全文
posted @ 2017-03-22 22:42 HJiang 阅读(172) 评论(0) 推荐(0)
iOS8以后自动计算cell的高度
摘要:前提: 1.iOS系统>=8 2.cell中的每个控件布局固定,不含一些动态的模块,但是可以含有label的变化 可以采用tableView自动计算cell的高度 首先设置tableView的属性: cell xib设置: PS:label的底部约束需要紧跟cell的低部约束 阅读全文
posted @ 2016-12-27 23:18 HJiang 阅读(276) 评论(0) 推荐(0)
iOS 自定义图片和文字垂直显示按钮<上面是图片,文字显示下面>
摘要:#import @interface VerticalButton : UIButton @end #import "VerticalButton.h" @implementation VerticalButton - (void)setup { self.titleLabel.textAlignment = NSTextAlignmentCenter; } - (ins... 阅读全文
posted @ 2016-10-23 22:18 HJiang 阅读(1399) 评论(0) 推荐(0)
iOS代码实现九宫格
摘要:#define ScreenW [UIScreen mainScreen].bounds.size.width #define ScreenH [UIScreen mainScreen].bounds.size.height 1 // 数据 2 NSArray *images = @[@"publish-boke", @"publish-weixin", @"publis... 阅读全文
posted @ 2016-10-23 22:15 HJiang 阅读(548) 评论(0) 推荐(0)
静态库
摘要:什么是库?库是程序代码的集合,是共享程序代码的一种方式根据源代码的公开情况,库可以分为2种类型开源库公开源代码,能看到具体实现比如SDWebImage、AFNetworking闭源库不公开源代码,是经过编译后的二进制文件,看不到具体实现主要分为:静态库、动态库静态库和动态库的存在形式静态库:.a 和... 阅读全文
posted @ 2015-03-23 11:42 HJiang 阅读(449) 评论(0) 推荐(0)
应用间跳转
摘要:新建新闻和微信模拟项目,从新闻界面中跳转至微信实例如果app允许被外界跳转需要配置URL 项目->target->info->URL Types->URL Schemes进行配置新闻:/* URL:统一资源定位符 http://www.baidu.com tel://110 file:///appl... 阅读全文
posted @ 2015-03-20 22:15 HJiang 阅读(645) 评论(0) 推荐(0)
iOS8 定位补充
摘要:iOS 8定位补充iOS 8定位需要修改2个地方1.info.plist文件中添加NSLocationAlwaysUsageDescription:描述信息从iOS 8开始,用户定位分两种情况总是使用用户位置:NSLocationAlwaysUsageDescription使用应用时定位:NSLoc... 阅读全文
posted @ 2015-03-17 17:56 HJiang 阅读(301) 评论(0) 推荐(0)

上一页 1 2 3 4 下一页