摘要: 1,实现推送的步骤 a、 注册:为应用程序申请消息推送服务。此时你的设备会向APNs服务器发送注册请求。 b、 APNs服务器接受请求,并将deviceToken返给你设备上的应用程序 c、客户端应用程序将deviceToken发送给后台服务器程序,后台接收并储存。 d、 后台服务器向APNs服务器 阅读全文
posted @ 2018-02-27 16:08 zfcc 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 1,线程和进程的区别 进程:是系统对资源进行分配和调度的最小单位,主要管理资源 线程:是进程的基本执行单元,一个进程包含有多个线程,其中有一条主线程(主要用来处理UI,更新UI的操作都必须在主线程中完成,不要把耗时操作放在主线程中,否则会卡住界面) 多核概念:核(CPU)一个CPU只能处理一个线程, 阅读全文
posted @ 2018-02-27 15:40 zfcc 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 1,ReactiveCocoa ->RAC 2,导入 pod 'ReactiveCocoa', '~> 5.0.3' 3,把按钮点击事件转换为信号,点击按钮就会发送信号 [[button rac_signalForControlEvents:UIControlEventTouchUpInside] 阅读全文
posted @ 2018-02-27 09:39 zfcc 阅读(217) 评论(0) 推荐(0) 编辑
摘要: self.navigationController?.navigationBar.barTintColor = themeColor 注意:一旦你设置了navigationBar的- (void)setBackgroundImage:(UIImage *)backgroundImage forBar 阅读全文
posted @ 2017-06-14 13:42 zfcc 阅读(734) 评论(0) 推荐(0) 编辑
摘要: var arr = [[Int]]() //第一种 var arr1 = [1,2,3] var arr2 = [4,5,6] arr2 .insert(9, at: 2) arr = [arr1,arr2] // 第二种 arr[1] .insert(11, at: 2) print(arr) 阅读全文
posted @ 2017-06-14 09:14 zfcc 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: CGFloat labelHeight = [self.address_lab sizeThatFits:CGSizeMake(self.address_lab.frame.size.width, MAXFLOAT)].height; NSInteger count = (labelHeight) 阅读全文
posted @ 2017-06-05 10:06 zfcc 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 1,将最新版shareSDK 导入项目(一般常用的是微信,QQ,微博) ①,到shareSDK官网http://www.mob.com/ 选择索要集成的分享方式并下载最新版本SDK ②,或者直接使用cocoapod导入 2,申请自己所需功能的appkey ①QQ(包括qq好友分享、qq 阅读全文
posted @ 2017-06-05 08:35 zfcc 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1,APPDelegate 2,Class 2.1 General 通用基类 2.1.1 Base 基类 2.1.2 Categories 公共扩展类 2.1.3 Core公共核心类(一般存放个人信息、接口api等) 2.1.4 Models公用的一些模型 2.1.5 Public 2.1.6 Vi 阅读全文
posted @ 2017-03-27 12:43 zfcc 阅读(176) 评论(0) 推荐(0) 编辑
摘要: http://www.jianshu.com/p/37790fad87d8 阅读全文
posted @ 2017-03-07 10:06 zfcc 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 1,更新 sudo gem install cocoapods如果没有反应则需要更换镜像 2,检查ruby源gem sources 3,删除检查到的ruby源 gem sources -- remove ruby源 4,添加你找到的ruby源 gem sources -a http://rubyge 阅读全文
posted @ 2017-03-07 09:10 zfcc 阅读(102) 评论(0) 推荐(0) 编辑