自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦想还是要有的

我就是不要这天下,也不能不要你

  • 博客(42)
  • 资源 (2)

原创 史上最细组件化步骤之远程私有库资源依赖 (xib 以及图片资源)3

2.1,xib在原有生成的模版文件的classes中加入如下文件view中带xib修改podspec文件保存之后,直接进入example文件中,install。测试拖入的文件,运行报错。(xib路径的问题)2.2 图片资源插播一条:使用https://github.com/steventroughtonsmith/cartool可以解压资源文件包里的car,这个工...

2019-09-11 12:24:56 113

原创 史上最细组件化步骤之私有库分支subspec创建2

备注:我是先自己操作一遍,然后在本地写了个文档,如果命令中出现中文符号的话,大家自己修改一下。谢谢支持。我会在文章中附上我的文档。1.pod seach 查看AFNetworking如下:这是af的subspec,接下来我们来学习如何创建我们自己的subspec。2.subspec子仓库,方便调用其中的一个。修改podsepec文件 如下:完成之后执行以下命令:进入po...

2019-09-11 10:47:49 394

原创 史上最细组件化步骤之创建远程私有库1

一:创建自己的远程索引库1.在码市上注册一个账号,新建一个仓库2.终端pod repo 查看 确认是否只有一个master3.pod repo —help 查看命令如下:Commands: + add Add a spec repo + add-cdn Add a spec repo backed by a CDN + lint ...

2019-08-22 20:49:02 111

原创 IOS 本地私有库创建(2)

1.在桌面新建个文件/Users/xuzhenzhen/Desktop/本地私有库/Local/testPerson/Classes2. 添加git2.1进入 /Users/xuzhenzhen/Desktop/本地私有库/Local/testPerson 文件夹git initgit add .git commit -m ‘x’因为是本地仓库 不需要上传到远程仓库...

2019-08-21 15:04:06 53

原创 IOS 创建自己的Cocoapods 公开库以及spec文件(一)

在本地桌面新建一个文件夹testLib ,里面在建个文件夹,命名Classes规范起见,文件夹新建person.h peroson.m 两个文件 在github 上新建个远程项目testP,复制ssh地址。https://github.com/XUZHENxuzhen/testP.git 进入终端,进入到testLib文件夹下git initgit add .git commit -...

2019-08-20 16:18:01 134

原创 Flutter入门配置的坑

学习一直是做技术的必经之路,开始按照官网配置真的是入门到放弃,后来有个师兄介绍了我一个好文章。以此来记录我的flutter的环境配置首先flutter 是需要依赖于brew,但是brew 是根据ios 系统版本来的,开始这块我不清楚,也不知道系统自带了brew。于是一直在安装/更新上碰壁。由于墙的原因,执行brew update 一直失败。我就放弃了update。我的mac 系统10.14.1...

2019-07-01 16:43:47 390

原创 IOS 音视频FFmpeg 框架分析

一:简单了解FFMpeg 以及他的组成部分1.什么是FFmpeg?FFmpeg 即是一款音视频编码工具也是一款音视频编解码开发套件,作为套件为开发者提供了丰富的音视频处理的调用接口2.FFmpeg的基本组成?FFmpeg 框架的基本组成包含AVFormat /AVCodec/AVFilter/AVDevice,AVUtil等(2.1)FFmpeg的封装模块AVFormatA...

2019-06-19 16:34:26 1232

原创 IOS ijkplayer 集成遇到的问题

一:首先到github下载demo进入到ijkplayer master下,安装ffmepg 执行./init-ios.sh ,报错。./init-ios-openssl.sh 需要https 注意,需要执行此步。二:编译ffmepg我没有解决以上安装报的错误,直接按照github上的命令进行执行cd ios./compile-ffmpeg.sh clean 清楚缓存...

2019-04-12 14:26:06 569

原创 IOS:学习音视频的过程

一,音视频学习中涉及到的概念1.我们常见的音视频格式有.mp4,mkv.avi,正如我们常见的.word 需要word 工具打开,不同格式的音视频也需要不同格式的播放器打开,这种视频格式相当于存储视频信息的容器,里面包含了音频信息,视频信息和相关的配置信息(比如.mp4格式 音视频是如何关联的信息,如何解码等)2.封装格式:简单的来说就是一个容器,里面存储已经编码压缩好的视频数据 和 音频...

2019-04-10 16:23:18 8971

原创 IOS在调用main函数之前做了什么?

众所周知,一个app的入口就是main.m 里面的main函数,接下来我们来剖根究底的探讨下调用main函数之前,程序都做了哪些事情?动态链接库iOS 中用到的所有系统 framework 都是动态链接的,类比成插头和插排,静态链接的代码在编译后的静态链接过程就将插头和插排一个个插好,运行时直接执行二进制文件;而动态链接需要在程序启动时去完成“插插销”的过程,所以在我们写的代码执行前,动态...

2019-02-14 14:41:37 338

原创 容云即使聊天步骤

1.appdelegate.m 遵循协议RCIMConnectionStatusDelegate+RCIMReceiveMessageDelegate/*!  连接状态监听器: RCIMConnectionStatusDelegate IMKit连接状态的的监听器 @discussion 设置IMKit的连接状态监听器,请参考RCIM的connectionStatusDelegate属性。...

2019-01-18 15:27:19 242

原创 React Native 学习从0至1-第三篇

1.TabBarIOS->经典错误:不管是不是TabBarIOS,只要内部缺少组件都会报这个错误2. NavigatorIOS + TabBarIOS 示例import React, {Component} from 'react';import {Platform, StyleSheet, Text, View, Image, TextInput, Touc...

2019-01-15 15:14:30 158

原创 React Native 学习从0至1-第二篇-FlatList

1. 折腾了两三个小时才出来一个界面,先上坑2. 代码如下export default class App extends Component { render() { var data = []; for (var i = 0; i < 5; i++) { data.push({key: i, title: ...

2019-01-11 13:50:26 157

原创 React Native 学习从0至1-第一篇

一.新建一个ReactNative 项目步骤:1.进入终端使用终端命令:react-native init 项目名称2.使用cd进入项目文件路径3.运行reacnative 项目 终端命令:react-native run-ios 或者 在reacnative 项目中找到IOS文件夹,打开直接在xcode中运行。二.解决引入组建没有提示的问题步骤:去github 上下载ReactNat...

2019-01-10 11:42:07 203

原创 Swift 使用WKWebView 实现Swift 与JS 交互

功能一:删除京东手机版https://m.jd.com/右上角的登陆按钮 代码如下import UIKitimport WebKitclass ViewController2: UIViewController,WKNavigationDelegate { @IBOutlet weak var weView: WKWebView! override func v...

2019-01-03 15:21:25 873

原创 MRC Copy 与MutableCopy的区别

拷贝的目的:产生一个副本,跟原对象之间互不影响。即修改原对象(或者副本)不会影响副本(或原对象)。深拷贝:生成一个新的对象,叫深拷贝浅拷贝:复制一个新的指针指向同一个对象,叫浅拷贝NSString *str1 = [[NSString alloc]initWithFormat:@"123"];        //copy mutableCopy 相当于alloc 一次,需要relea...

2018-12-06 16:39:56 277

原创 +load 与 +initialize的区别

先附上代码,load 方法的代码 我就不附上,大家可以自己动手测试一下。@interface XZPerson : NSObject@end#import "XZPerson.h"@implementation XZPerson+ (void)initialize{ NSLog(@"XZPerson-initialize"); }@end//////////...

2018-12-05 12:25:21 187

原创 CADisplayLink 与NSTimer 循环引用问题 ,NSTimer准时吗?

由下面代码可以看出   CADisplayLink 与NSTimer 中的targert 会发生强引用的关系,如何解决呐?@interface ViewController ()@property(nonatomic,strong)CADisplayLink *link;@property(nonatomic,strong)NSTimer *timer;@end@implemen...

2018-12-04 15:54:11 168

原创 OC Super的理解

//我们来看下以下代码打印的结果是什么?@interface XZPerson : NSObject                      - (void)run;@end@implementation XZPerson- (void)run{ NSLog(@"%s",__func__);}@end===============================...

2018-11-27 11:26:49 411

原创 IOS objc_msgSend执行流程

objc_msgSend大家应该不陌生吧,oc的方法调用,其实就是转换为objc_msgSend的函数调用。简答的可以理解为发消息,如果 方法调用 之后出现了经典的错误,unrecognized selector sent to instance... 也可以从以下三个阶段进行分析。objc_msgSend执行流程可以分为三个阶段消息发送    XZdog *dog = [[XZdog ...

2018-11-20 17:23:13 1375

原创 IOS 面试总结(2)

        在这个公司待了三年,虽然我有足够的危机感,但是并没有让我提升多少,所以我迫切的想换个工作环境,于是去了几个公司面试,有个自称是用户在三亿左右的公司,且不说用户量是真是假。问了很多混合开发的东西,弱项,可想而知有多狼狈了吧。综合几家公司的面试,写了这篇文集,有问题可以留言。谢谢。1. 开发框架的选择:原生开发?混合开发?1.1原生开发:在应用的性能上以及用户体验上是最好的,但...

2018-11-20 10:03:17 727

原创 Runtime之 Class 结构的剖析

从源码objc_runtime-new.h 中可以看到struct objc_class : objc_object { // Class ISA; Class superclass; cache_t cache; //方法缓存 class_data_bits_t bits; //用于获取具体的类信息 class_rw_t *da...

2018-11-01 16:56:32 173

原创 Runtime 之 isa

要想学习runtime必须知道runtime的isa指针我们都知道新的iphone手记采用的都是arm-64架构,在arm-64之前,isa就是个普通的指针,存储着Class,Meta-Class对象的内存地址;从arm-64开始,对isa 进行了一个优化,变成了一个共用体(union)结构,还使用位域来存储更多的消息。union isa_t { isa_t() { } ...

2018-10-29 16:08:11 270

原创 Category源码分析

一,首先为啥要使用分类?开发中分类可以吧不同的功能分散到多个不同的文件及框架,减少单个文件的体积,方便管理 创建私有方法二,Category在编译时刻,都是独立的,各自生成各自的文件XZPerson#import <Foundation/Foundation.h>@interface XZPerson : NSObject@end#import "XZPer...

2018-10-11 12:24:51 150

原创 KVO实现原理

KVO的全称是Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。下面来探讨一下KVO的本质1.新建一个XZPerson类#import <Foundation/Foundation.h>@interface XZPerson : NSObject @property(nonatomic,assign)int age;@e...

2018-10-10 10:43:07 454

原创 深入探索Block(一)

目录一 ,Block的本质 二,Block的变量捕获三,Block 的类型一 ,Block的本质.m 文件代码如下int main(int argc, const char * argv[]) {    @autoreleasepool {        int age = 10;        void (^block)(void) = ^{           ...

2018-09-26 16:49:48 124

原创 React Native遇到的问题

1.WebStorm中的组件出现黄色下划线,以下是去掉下划线的方法 2.React Native  引入其他js文件严格遵循首字母大写的驼峰命名,巨坑。 3同一级目录引用问题...

2018-09-25 11:49:45 155

原创 IOS原生集成ReactNative

     折腾了一天,看到网上很多帖子说原生集成RN使用cocopods 会报各种奇葩的错误,给我吓得赶紧使用拖拉文件的方式。哪知道一直没成功。尝试了下cocoapods集成RN,成功了,下面来分享下我的成功,嘻嘻~1.首先新建个xcode工程2.使用终端命令react-native init xxx  ;xxx是RN的项目名称.3.新建一个文件存放RN集成到IOS原生项目需要的文件。...

2018-09-20 15:15:58 468

原创 APP启动优化

目录APP的启动分为两种:热启动/冷启动APP的冷启动主要包含以下几个阶段APP启动优化的步骤 冷启动:app 还没开始启动,从零开始启动 热启动:app以及启动存在后台中,再次点击app 图标的一个种启动 一般app的启动优化主要是针对冷启动的。WWDC2016上Apple建议一个app的冷启动时间大概在400ms左右设。通过添加环境变量可以打印出APP的启动时间分析(E...

2018-08-22 16:41:36 92

原创 IOS 设置 UItableViewCell 分割线全屏

1. 干掉系统的 self.leftTableView.separatorStyle = UITableViewCellSeparatorStyleNone;然后自己添加UIView覆盖2.利用系统的属性设置IOS7:self.leftTableView.separatorInset = UIEdgeInsetsZero; IOS8:  在tableiview的代理方法- (UIT...

2018-08-06 15:01:50 227

原创 IOS:简述你对协议的理解?

作为一个3-5年的IOS开发者来说,假如有人问你,作为一个有经验的程序猿/媛你会如何作答?告诉人家如何如何使用?请问:作为一个可以面试你的人来说,需要你告诉他如何使用吗?这样的回答只会让面试者觉得你这3-5年白瞎了。废话说完了,我们来进入主题吧!可以从以下两个方面来回答一.为什么使用协议?举例:UItableview的数据源就是一个协议,因为有些东西,自己内部不要去写死,比如说展示...

2018-07-31 11:47:15 572

原创 IOS 内存管理

早前大家都知道IOS的内存管理方式是MRC的, 尽管现在我们是在ARC下开发,但是我们依然要保持着一颗好奇的人。IOS 到底是怎么进行内存管理的?一,IOS的程序内存布局(由低地址 -> 高地址)保留区 代码段:编译之后的代码 数据段:字符串常量,已初始化/未初始化 的静态变量/全局变量 堆:由低地址到高地址,通过malloc,alloc,new,calloc等动态分配的空间...

2018-07-23 16:30:19 752

原创 IOS 性能优化

最近工作比较空闲,相信我不说大家都知道性能优化的重要性了吧,很多面试公司都有的要求。这也是作为一个高级软件开发工程师的必备技能 。要知道在屏幕成像的过程中CPU与GPU起着很重要的作用one  tableView的缓存1.说到缓存,大家想到的是不是tableviewcell的缓存机制呐TableViewCell 复用在cellForRowAtIndexPath:回调的时候只创...

2018-07-19 16:33:48 959

原创 IOS 单元测试

前言最近一直像要进阶新的知识,才知道一些大厂很注重单元测试。其实我一直不明白单元测试的意义跟价格,跟我一样疑惑吗?想要屌丝逆袭成高级软件工程师吗?Follow me~...

2018-07-12 15:41:29 1512

原创 Runtime 常见用法

OC就是运行时机制。在真正运行的时候发送消息,去决定调用哪个函数。1. Runtime 动态添加方法(消息转发机制)//动态方法解析//这是NSObject根类提供的类方法,调用时机为当被调用的方法实现部分没有找到,而消息转发机制启动之前的这个中间时刻。//_cmd 表示方法的编号,打印结果为当前执行的方法名// type: 方法类型:void用v来表示,id参数用@来表示,SEL用:来表示+ (...

2018-05-22 11:11:11 347 1

原创 Runloop 多线程

Runloop 的使命:1 负责程序不退出2 负责监听IOS所有的事件,如:触摸,时钟,网络事件3 如果没有事件发送,会让程序进入休眠状态Runloop 的两种模式:NSDefaultRunLoopMode+NSRunLoopCommonModesNSDefaultRunLoopMode:时钟+网络事件NSRunLoopCommonModes:用户交互...

2018-05-15 18:08:53 155 1

原创 IOS CombinedChartView

复合图表:最多显示4个公司的数据,其他可以滑动,数值以及x轴使用千分位,保留小数点后2位,柱形图不显示数值,点击显示  + (CombinedChartView *)XZZCombinedChartView{        /* 设置图表的属性 */    CombinedChartView *_combinedChartView = [[CombinedChartView...

2018-05-09 17:30:17 1213

原创 IOS Charts

前言:最近一直在用 Charts  ,总结下实际用到的过程中踩的坑~折线图:LineChartView (x轴最多显示3个项目,一共6个,其余的可以滑动),x轴以及y 轴的数值均已千分位隔开。超过1000时就是1k。保留小数点后两位。一:初始化LineChartView- (LineChartView *)chartView {        if (_chartView == nil) {   ...

2018-05-09 17:09:38 5231 1

原创 多线程

一,什么是线程?1个进程可以开启多个线程,每个线程可以同时执行不能的任务。进程->车间。线程-> 车间工人二,多线程的意义?多线程优点:1.能适当的提高程序的并行执行效率                        2.能适当的提高CPU/内存的利用效率多线程缺点:1.开启线程需要占用一定的内存空间,如果开启大量的线程会占用大量的内存空间,降低程序的性能   ...

2018-05-03 13:55:18 70

原创 IOS nonatomic 与 atomic 的区别

atomic:原子属性,多线程写入属性时,保证同一时间只有一个线程能够写入操作,单线程写,多线程读的操作,读写相对安全的atomic 内部有一把锁:自旋锁自旋锁:如果发现其他线程正在执行锁定的代码。线程就会出现死循环,等待线程完成就执行锁定代码开发中经常使用 nonatomic  修饰属性,原因是因为:锁的开销比较大,容易造成性能问题。nonatomic 是线程不安全的,但是atomic 也不是绝...

2018-05-03 11:25:38 200

远程私有库组件化.pages

组件化从0-1的详细操作步骤,有助于初学者的学习,文档会持续更新。

2019-09-11

RAC学习笔记

RAC学习,RAC学习

2019-02-12

空空如也

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