自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (1)
  • 收藏
  • 关注

原创 多线程线程同步方案

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I ...

2020-04-08 23:35:10 159

原创 OC 语法底层基础

OC 语法底层基础文章目录OC 语法底层基础分类(实现机制,原理等)**分类都做了哪些事情?**特点**分类中都可以添加哪些内容?****Category的底层结构****分类加载调用栈:**实现原理Category 的加载处理过程常见面试题load 方法initialize 方法关联对象类和分类添加属性的区别分类添加“成员变量”关联对象的实现扩展(Extension 和分类的区别)一般用扩展做...

2020-03-17 08:46:52 288

原创 Runtime

Runtime文章目录Runtime概念引入概念引入

2019-09-19 17:11:35 370

原创 性能优化学习

离屏渲染问题Instrument之Core Animation调优离屏渲染问题GPU 渲染机制:CPU 计算好显示内容提交到GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按 VSync 信号逐行进行读取帧缓冲区数据,经过可能的数模转换传递给显示器显示。GPU 渲染的两种方式:On-Screen Rendering 当前屏幕渲染,指的是GPU的渲...

2018-09-06 09:57:54 258

原创 NSTimer 基本使用和注意事项

NSTimer的基本使用NSTimer在线程中的使用NSTimer在ScrollView中的使用NSTimer/CADisplayLink循环引用的问题和解决GCD实现定时器 NSTimer的基本使用NSTimer: 一个在确定时间间隔内执行一次或多次我们指定对象方法的对象。基本使用: 两个比较常用的方法:timerWithTimeInterval: targ...

2018-08-30 14:39:54 4352

原创 KVO原理

 ###KVO 常见用法:      1、注册指定key 路径的监听器  - (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context; ...

2018-05-13 01:09:31 912

原创 iOS 开发尺寸

 官方:https://developer.apple.com/ios/human-interface-guidelines/

2018-05-09 10:44:43 251

原创 iOS 逆向学习

class-dump : 主要作用是从可执行文件中导出APP头文件中的内容,根据这些头文件能够大致分析APP的结构和内容     安装:         下载地址:http://stevenygard.com/projects/class-dump/         下载之后把dmg文件中的class-dump 文件复制到/usr/bin (command+shift+G  /usr/local)...

2018-04-12 10:41:30 370

转载 BlocksKit的使用

众所周知Block已被广泛用于iOS编程。它们通常被用作可并发执行的逻辑单元的封装,或者作为事件触发的回调。Block比传统回调函数有2点优势:  允许在调用点上下文书写执行逻辑,不用分离函数  Block可以使用local variables.基于以上种种优点Cocoa Touch越发支持Block式编程,这点从UIView的各种动画效果可用Block实现就可见一斑。而BlocksK

2018-02-07 16:41:09 372

原创 高性能iOS应用开发笔记

最佳实践:避免使用大量的单例。具体来说,不要出现上帝对象(如职责特别多活状态信息特别多的对象)。这是一个反模式,指代一种常见的解决方案的设计模式,但是很快产生了不良效果。日志器、埋点服务和任务队列这样的辅助单例都是很不错的,但全局状态对象不可取。对子对象使用__strong对父对象使用__weak对使用引用图闭合的对象(如委托)使用__weak对数值属性(NSInteger、SEL

2018-01-31 15:22:31 364

原创 Python 基本环境的配置

Mac 安装Python3 时出现的问题总结:$ brew install python3Warning: python3 3.6.3 is already installed, it's just not linked.You can use `brew link python3` to link this version.$ brew link python3Linking /us

2018-01-21 23:59:49 356

原创 使用reveal 查看app的结构

使用reveal 查看app的结构

2017-11-24 11:37:34 302

原创 上传App Store 报错 ERROR ITMS-90087: "Unsupported Architectures 解决办法

报这个错一般是由于自己制作的framework 包含了x86_64, i386 架构,这个是苹果不允许的。解决办法:剔除掉x86_64, i386这两个架构两种办法:1、重新打包解决2、工程中添加shell脚本来解决脚本如下: APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" # This script loops t

2017-04-17 19:04:49 11754 1

原创 ReactiveCocoa

 ReactiveCocoa常见类:1、RACSiganl:信号类(RAC最核心的类),一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据。     信号类(RACSiganl),只是表示当数据改变时,信号内部会发出数据,它本身不具备发送信号的能力,而是交给内部一个订阅者去发出。     默认一个信号都是冷信号,也就是值改变了,也不会触发,只有订阅了这个信...

2016-12-19 22:41:17 671

原创 Charles 4.0.1 的安装和设置

Charles 4.0.1 版本的安装:下载地址:https://pan.baidu.com/s/1kV6msnl,密码:y75g  解压密码:xclient.info拦截HTTPS 请求的设置:1、电脑上证书的安装:首先是在help-> SSL Proxying -> Install Charles Root Certificate 然后到钥匙串中:

2016-12-15 11:11:59 3086 1

原创 iOS 笔记

///下面这个属性设置为NO的时候(不透明的导航栏),没有高斯模糊效果,此时会向下方移动64的距离 self.navigationController.navigationBar.translucent = YES; ///下面这个属性,当设置为不透明的导航栏的时候,需要把属性设置成为YES,充满全屏 self.extendedLayoutIncludesOpaqueBar

2016-12-09 19:04:09 309

原创 10 - JS 函数、属性和方法、 运算符、循环

10 - JS 函数、属性和方法、 运算符、循环

2016-12-04 11:23:29 276

原创 08-CSS 相对定位 绝对定位 固定定位 z-index

08-CSS 相对定位   绝对定位  固定定位  z-index 待完善。。。

2016-11-27 19:30:14 366

原创 07-CSS 行高和字号 超级链接的美化 background系列属性

07-CSS 行高和字号   超级链接的美化  background系列属性待完善。。。

2016-11-27 19:17:36 332

原创 02-HTML 基本骨架 、基本语法特性、 h 和 p 标签、图片、超级链接

### hellp一、HTML 基本骨架<!DOCTYPE html><html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head>

2016-11-27 00:56:37 1630

原创 06-CSS 浮动的清除 margin Fireworks和精确盒子还原

一、浮动的清除清除浮动的方法:1、给浮动的元素的祖先元素加高度2、clear:both3、隔墙法4、overflow:hidden 二、margin 1、margin 的塌陷现象2、盒子居中 margin:0 auto3、善于使用父亲的 padding, 而不是儿子的 margin 4、兼容问题

2016-11-27 00:47:52 313

原创 05-CSS 权重 盒模型 标准文档流 浮动

一、权重问题1.1、 !important 标记可以通过 k : v !important 来给一个属性提高权重,这个属性的权重是无穷大的。 .spac2{ color: red; } .spac1{ color: blue; }

2016-11-27 00:47:01 656

原创 04-CSS 选择器(基础选择器、高级选择器) CSS 的继承性和层叠性

04-CSS 选择器(基础选择器、高级选择器)  CSS 的继承性和层叠性

2016-11-26 00:32:54 396

原创 03-HTML 列表、div、 span、表单

一、列表:列表分为三种: 无序列表  有序列表 定义列表1.1 无序列表无序列表是用来表示一个列表的语义,并且每个项目和项目之间是不分先后的。ul:(unordered list) 无序列表li:(list item) 列表项所有的li不能单独存在,必须包裹在ul里面,反过来说ul的儿子不能是别的东西,必须只能有li,例如: 中国的主要城市

2016-11-26 00:27:06 593

原创 09 - JS 事件三要素

1、事件三要素:事件源 :要触发的对象事件:怎么触发这个事情事件处理程序:发生了什么事情事件源.事件 = function() { 事件处理函数}

2016-11-17 23:54:52 9401 1

原创 01 - HTML基础

HTML  (超文本标记语言)  负责描述页面的语义CSS                                  负责描述页面的样式JS                                     负责描述页面的动态效果

2016-10-30 22:36:18 254

原创 分类和类扩展

分类(Category) 和 类扩展(Extension) 分类(Category)分类一般是只能增加方法,不能增加成员变量(可以通过Runtime来实现)分类可以访问原来类中的成员变量如果分类和原来的类出现同名的方法,优先调用分类中的方法方法的调用优先级是:分类 -> 原来类 -> 父类类扩展(Extension)类扩展是分类的饿一个特例,Extension 是 Ca

2016-10-17 16:58:23 576

原创 Runtime

typedef struct objc_class *Class; //类在Objective-C中就是结构体指针 struct objc_class { Class _Nonnull isa OBJC_ISA_AVAILABILITY; //isa 指向元类的objc_class结构体指针,iOS中的类也是对象,元类中储存有类对象的类方法 #if !__...

2016-09-01 23:31:22 265

原创 开发收藏

启动页添加广告:https://github.com/CoderZhuXH/XHLaunchAd推送:http://www.cnblogs.com/XYQ-208910/p/5506363.htmlHUD 进度 https://github.com/vjieshao/PTSProgressHUD环状进度条  http://www.jianshu.com/p/2810c0a508d2

2016-08-28 00:08:35 1290

原创 iOS中常用的毛玻璃处理

//1.模糊毛玻璃效果实现方案一 //利用系统的CoreImage(滤镜) 滤镜处理的过程比较慢,会造成加载图片缓慢的现象(等一会才看到图片),尽量放到子线程执行 UIImage *image = [UIImage imageNamed:@"1_1280x800"]; //1.创建CIImage CIImage *ciImage = [[CIImage alloc

2016-06-26 23:41:51 478

原创 iOS 数据存储的几种方式

在iOS开发过程中常用的本地化存储有五种方式:1.plist (XML属性列表归档 NSArray\NSDictionary)2.preference (偏好设置\NSUserDefaults) (本质还是通过plist来存储数据,但是使用更加简单,无需关注文件、文件夹路径和名称)3.NSCoding (NSKeyedArchiver\NSKeyedUnarchiver)  (能把任何

2015-12-22 13:52:27 7302

原创 iOS 支付宝集成

使用支付宝进行一个完整的支付功能大概需要以下几个步骤:1.向支付宝申请,与支付宝签约,获得商户ID (partner) 和账号ID (seller)2.下载相应的公钥私钥文件(加密签名使用)3.下载支付宝的SDK4.生成订单信息,签名加密5.调用支付宝客户端,由支付宝客户端跟支付宝完全服务器打交道6.支付完毕后,支付宝客户端会跳回到原来的应用程序7.在原来的应用程序中显

2015-12-22 01:13:18 532

原创 推送

iOS 中的推送分为两种:本地推送通知(Local Notification)远程推送通知 (Remote Notification)推送的作用就是让不在前台运行的APP,告知用户APP内部发生了什么事情。推送通知的呈现效果有5种,可以在系统通知中心中进行设置。发出推送通知的时候,如果当前程序正在运行在前台,那么那么推送通知就不会被呈现出来,点击推送通知后,默认就会自动打开发出推送

2015-12-20 11:40:33 1070

原创 地图定位

我们的应用中常常会用到地图和定位的相关功能,在开发中,想加入这两个功能,必须要基于2个框架进行开发。Map Kit : 用于地图展示Core Location : 用于地理定位一、Core Location 的基本使用:首先要导入框架 -> 导入主头文件:#import  ->  创建CLLocationManager对象做用户定位。CLLocationManager的常用操作

2015-11-21 10:09:28 433

原创 iOS相册图片的选取与设置

我的模块中常常用户的头像可以用户自定义自己的头像,可以选择拍照也可以选择从用户的自己的相册中选择,具体的实现代码如下:@interface PickerViewController : UIViewController//名字@property (weak, nonatomic) IBOutlet UILabel *namelabel;//头像@property (weak, non

2015-11-17 16:36:26 1293

原创 Core Animation的简单使用

Core Animation (核心动画):是一组非常强大的动画处理API,他的使用可以达到事半功倍的效果,也就是说可以以少量的代码实现非常强大的功能。既可以用在iOS上,也可以用在OS X上。其动画的执行过程都是在后台操作的,不会阻塞主线程。而且Core Animation是直接作用在CALayer上的,并不是view上面的。动画的使用步骤:1、初始化一个CAAnimation 对象

2015-11-16 09:57:50 1031

原创 iOS 中 Cookie的简单使用

iOS平台下每一个APP都有自己的Cookie,APP之间不共享Cookie,一个Cookie 对应一个NSHTTPCookie实体,并通过NSHTTPCookieStrorage进行管理。那些需要持久化的Cookie是存放在~/Library/Cookies/Cookies.binarycookies 文件中的二进制格式。Cookie的生成途径有两种,一种是访问网页,网页返回的是HTTP H

2015-11-13 09:50:18 2933

原创 UIScrollView 的subViews的问题

今天写代码碰到了一个纠结的问题,可能是由于我对于UIScrollView底层结构不是很清楚吧,我在UIScrollView里面放了6个label,但是我打印他的subViews的时候老是打印出来是8个子控件,这是因为UIScrollView的竖直和水平滚动条导致subViews里面多了两个UIImageView,需要设置为NO,就可以正常显示subviews的个数了。        scrol

2015-11-12 15:12:29 428

原创 Charles 抓包工具的简单使用

当我们看到一些APP做的非常棒的时候,常常会有一种想要仿写的冲动,但是往往人家的接口文档咱拿不到,所以没法实现。在这里我想介绍一个软件叫Charles,本软件是专门用来抓包分析包的软件,我们可以通过这个软件拿到我们想要的一些数据进而实现,下面就简单介绍一下这个软件以及使用方法:1、Charles 又叫青花瓷,在IOS 开发中常常用来抓包使用。我们可以用来拦截别人的软件的发送和请求的后端端口

2015-11-12 10:55:27 2387

原创 OC中有关JS的相关操作

JS:JavaScript,是一门广泛用于浏览器客户端的脚本语言,原本是只能用于浏览器的,自从NodeJS出来以后就变的非常的火爆,现在也可以用于数据库和服务器的开发。NodeJS = 基于Googole V8 引擎平台(整合了数据库和服务器端)。是由Netspace公司设计,当时跟Sun公司合作,所以名字起得很像Java。业内简称:JSJS的常见用途:HTML DOM

2015-11-04 13:50:06 975

《OBJECTIVE-C编程之道 IOS设计模式解析》电子书

《OBJECTIVE-C编程之道 IOS设计模式解析》电子书+源代码

2018-03-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除