自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

紧握着寒风的博客

宝剑锋从磨砺出,梅花香自苦寒来。

  • 博客(54)
  • 收藏
  • 关注

原创 Instruments-Leaks 不显示方法的问题

打开xcode 进入工程将工程clearcommand+control+I 编译用于检测内存的 bundle选择leaks点击leaks左上角运行 ok

2017-11-28 12:33:36 1670

转载 iOS之报错“Cannot create __weak reference in file using manual reference counting”解决办法

解决的办法:在Build Settings———>Aplle LLVM8.0 - Language - Objectibe-C————->Weak Reference In Manual Retain Release 设置为YES。

2017-09-06 15:12:16 633

原创 swift 可选值模式

unsafelyUnwrapped,关闭安全模式就不会判断是否可选值了,注意可能会报错。

2017-08-18 15:41:30 545

原创 NSThread 和 RunLoop

线程:一个独立执行代码的路径进程:一个可执行程序,包含多个线程使用场景将与UI界面显示、影响界面流畅度的事情 都应该 子线程处理。一. NSThread1.NSThread创建带有返回值的创建// 创建子线程 1 NSThread *oneThread = [[NSThread alloc]initWithTarget:self selector:@selector(threadEvent)

2017-06-19 16:17:00 1531

原创 iOS 的内存与存储区域

栈区(stack)概述:栈是向低地址扩展的数据结构,是一块连续的内存区域。由栈顶的地址和栈的最大容量是系统预先规定好的。栈的空间很小,大概1-2M。超出overflow。使用:栈区,就是函数(方法)运行时向系统请求的内存。栈中的局部变量,参数由编译器分配和释放,函数运行就分配,函数结束就释放,由系统完成。是系统数据结构,对应进程唯一。特别注意:系统栈的剩余空间 大于 所申请的空间,系统为程序提供内存

2017-06-13 16:18:32 3493

原创 Static 与 const

同事问到我这个基础问题,这里做下记录,方便查阅1. Staticstatic 修饰变量1. 局部的 static 变量简单说就是局部的静态变量(存储在静态数据区),在哪一个代码块中声明,就只能在那里使用。优点:因为变量存储于静态区域,所以会记录下上一次变量的数据。2. 外部的 static 变量不加static的外部(代码块{}之外的)变量,默认静态变量,作用域很广,加上static为了

2017-06-13 11:24:32 340

原创 走你_OBJC_CLASS_$_xxx", referenced from:

姑娘又换红妆,xcode8.3.3苹果爸爸已经放出8.3.3好几天了,在清晨的一米阳光之中,我决定要更上一更!更新完成…command+B之后,一点红芒将深沉而忧郁的我从诗与远方中惊醒。 我….真是握了棵草。 就像揭开了小娘子的面纱,她却赌气的撅起小嘴!而你还得哄哄! 知文达意,链接报错,找不到LoginViewController类 Tagert–Build Phases – Compil

2017-06-09 15:56:01 573

原创 Swift autoLayout 下的UILabel 换行问题

1. numberOfLines这个大家都知道设置为0.numberOfLines = 02. 设置约束比如上下左右,这里使用了SnapKit。.snp.makeConstraints({ (make) in make.top.equalTo(self).offset(5) make.left.equalTo(self).offset(15)

2017-04-14 10:17:27 1965

原创 swift 调用 oc [cannot find interface declaration for ‘ BaseViewModel’ , superclass of ‘indexViewModel’

* 看报错,indexViewMode找不到父类BaseViewModel* 在桥接文件里 有#import "IndexViewModel.h",没有baseviewmodel,然后加上了#import "BaseViewModel.h"现在桥接文件是这样#import "IndexViewModel.h"#import "BaseViewModel.h"依然报同样的错误 这是因为 桥接文

2017-03-22 09:21:58 2305

原创 Swift KVO触发问题(runtime支持不友好)

说一说在Swift中使用kvo的一点小坑*kvo实现原理*kvo是基于runtime实现的一个类的属性注册了观察者,在运行时,会动态的创建这个类的派生类(就是子类)键值观察通知依赖于NSObject 的两个方法:willChangeValueForKey: 和didChangevlueForKey:;在一个被观察属性发生改变之前, willChangeValueForKey:一定会被调用,这就

2017-03-15 15:22:18 1636

原创 RxSwift (9) 调试符号

debugRxSwift的调试func rx_skipUntil(){ let disposeBag = DisposeBag() let sourceSequence = PublishSubject<String>() let referenceSequence = PublishSubject<String>() sourceSeque

2017-03-13 15:49:54 577

原创 RxSwift (8) 错误处理

catchErrorJustReturn发送错误信号的时候,转换为指定的信息 发送func rx_catchErrorJustReturn() { let disposeBag = DisposeBag() let sequenceThatFails = PublishSubject<String>() sequenceThatFails .catchErrorJ

2017-03-13 15:19:12 1693

原创 RxSwift (7) 手动启动序列[连接性序列]

publish转化连接序列,订阅时不会发出信号,执行connect方法时,才开始发射信号func rx_Publish() { let intSequence = Observable<Int>.interval(1, scheduler: MainScheduler.instance) .publish() _ = intSequence .subscr

2017-03-13 14:35:37 353

原创 RxSwift (6) 观察量序列转换符

toArraay将一个序列 发出的所有信号元素 转化为数组func rx_toArray() { let disposeBag = DisposeBag() Observable.of("1","a","b")//range(start: 1, count: 10) .toArray() .subscribe { print($0) }

2017-03-13 11:06:28 881

原创 RxSwift (5) 条件运算符

filter将信号元素 筛选 符合条件的 继续发送,不符合的舍弃 func rx_filter(){ let disposBag = DisposeBag() Observable.from(["美腿","丝袜","超短裙"]) .filter{x in x=="美腿"} .subscribe{print($0)}

2017-03-13 10:39:02 662

原创 RxSwift (4) 转换符号

转换 观察量序列 发出的next信号 元素的 运算符map将接收的信号的值 做出处理 再传递下去func rx_map(){ let disposeBag = DisposeBag() let aObserable = Observable<String>.create { (observe) -> Disposable in observe.o

2017-03-10 17:01:08 599

原创 RxSwift (3) 组合符号

startWith在开始发出订阅信号前,按照后进先出原则,发出指定的信号 func rx_operators_startWith(){ let disposeBag = DisposeBag() // 观察量序列 of是固定元素的观察序列 var ofObservable = Observable.of("制服","丝袜","吊带","短裙")

2017-03-10 10:19:56 608

原创 RxSwift (2) Subject

Subject简述既可以作为观察量序列(Observable),也可以作为观察者(observer)作为观察量序列的时候,将Observable里面 订阅的发送信号事件序列 剥离出来了,进行先订阅,后实现订阅的事件序列,也就是发送信号啦。作为观察者,就是实现发送信号。看下面的例子吧PublishSubject订阅之后 ,才开始发送信号func rx_PublishSubject(){

2017-03-09 14:26:23 676

原创 RxSwift Observable(观察量) subscribe(订阅)

RxSwift Observable(观察量) subscribe(订阅)1.观察量Observable(监听 元素一系列变化 并且 内部相应作出处理) 生成的一个方法这个元素可以是多样化,比如array,string,button的事件,文本框的字符串变化。特点Observable< E >,E代表观察的元素类型转化为一个序列,本身并不会触发执行。只有 被订阅的时候,才会触发执行。如果

2017-03-07 16:43:00 1370

原创 OpenGLES2.0 概念

1. 1缓存 (buffer)* OpenGLES 为GPU和CPU的内存区域 数据交换定义了缓存(buffer)的概念。*优点:缓存是指 图形处理器能够 制和管理的 RAM。程序从 CPU 的内存复制数据到 OpenGL ES 的缓存。在 GPU 取得一个缓存的所有权以后,运行在 CPU 中的程序理想情况下将不 再接 这个缓存。通过 制独 的缓存,GPU 就能够尽可能以最有效的方式读写内存。

2017-02-17 15:25:46 1950

原创 3D基本小知识

3D渲染用3d数据生成一个2d图像的过程叫做渲染,在计算机上显示的图片是由矩形 的颜色点组成的,这些矩形的颜色点 做像素。像素一个像素点由3各颜色单元构成,一个红点、绿点、蓝点组成。图像图像是以每个像 至少包含 3 个值的一个数组存 在电 的存 器中的。第一个值 指定了像 的 色元 的强度,第 个值代表 色强度,第三个值是 色强度。一个包 含 10000 个像 的图像能够以一个拥有 30000 个强

2017-02-17 14:26:08 328

原创 删除xcode git 仓库

cd 到目录rm -fr .git

2017-02-09 10:29:43 2716

原创 AFNetworking 状态栏小菊花

网络请求 状态栏小菊花转动问题,afn默认没有开启,需要开启导入#import "AFNetworkActivityIndicatorManager.h"然后 [AFNetworkActivityIndicatorManager sharedManager].enabled = YES; 就可以了这个方法afn会自动检测,只有网络加载缓慢,数据量较大的时候才会显示,如果需要每次都显示那就自己设置

2017-02-03 10:14:32 1642

原创 __Block

我们知道在Block使用中,Block内部能够读取外部局部变量的值。但我们需要改变这个变量的值时,我们需要给它附加上__block修饰符。__block另外一个比较多的使用场景是,为了避免某些情况下Block循环引用的问题,我们也可以给相应对象加上__block 修饰符。为什么不使用__block就不能在Block内部修改外部的局部变量?我们把以下代码通过 clang -rewrite-objc 源

2016-12-09 17:12:05 387

原创 函数式编程的前世今生

函数式编程的前世今生一等函数的理念可以追溯到 Church 的 lambda 演算 (Church 1941; Barendregt 1984)。此后,包括 Haskell,OCaml,Standard ML,Scala 和 F# 在内的大量 (函数式) 编程语言都不同程度地借鉴了这个概念。​ OC中的一等函数 是 blocksSwift 中就是闭包尽管在语义上oc和swift

2016-12-09 17:09:00 577

原创 calayer

UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它。它本身完全是由CoreAnimation来实现的(Mac下似乎不是这样)。它真正的绘图部分,是由一个叫CALayer(Core Animation Layer)的类来管理。UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等等,实际上内部都是在访问它所包含的CALaye

2016-12-09 17:04:03 295

原创 Thread

(void)threadStudent{ /// 静态创建 [NSThread detachNewThreadSelector:@selector(testThreadOne) toTarget:self withObject:nil]; /// 这一句跟上面一句效果一致 [self performSelectorInBackground:@selector(testThreadOne) w

2016-12-09 17:01:52 380

原创 NSOperationQueue

-(IBAction)operationQueue:(id)sender{ NSOperationQueue *queue = [[NSOperationQueue alloc]init]; queue.maxConcurrentOperationCount = 10;//最多添加10个线程。NSOperationQueueDefaultMaxConcurrentOperatio

2016-12-09 17:00:33 348

原创 RunLoop

与线程关系 :runloop依赖于线程,每一个线程都有一个与之对应的runloop,子线程的runloop需要手动启动,当线程结束,runloop也会结束运行 [[NSRunLoop currentRunLoop]run]; [loop1 runUntilDate:[NSDate date]];//[NSDate date]一直运行 [loop2 runMode:NSDefaultRunL

2016-12-09 16:59:40 300

原创 GCD

//创建串行队列 DISPATCH_QUEUE_SERIAL// 并行队列 DISPATCH_QUEUE_CONCURRENT//0.dispatch_queue_t serialDispatchQueue = dispatch_queue_create("blog.youkuaiyun.com/baitxaps", NULL);//1.dispatch_queue_t concurrentDispat

2016-12-09 16:57:44 251

原创 NSString的内存实现

NSString等Foundation框架提供的类的内存管理 (1)字符串的常量池(在数据区) (2) NSString *str1 = @“abc”; NSString *str2 = [NSString stringWithString:@”abc”]; NSString *str3 = [[NSString alloc

2016-12-09 16:56:04 609

原创 assign,copy,retain ,weak,strong(二)

如果需要持有一个对象,那么对其发送retain 如果之后不再使用该对象,那么需要对其发送release(或者autorealse) 每一次对retain,alloc或者new的调用,需要对应一次release或autorealse调用什么时候retain例如:person是一个类在vc声明了属性person1和person2@property (nonatomic,strong) person

2016-12-07 23:14:29 392

转载 iOS中assign,copy,retain之间的区别以及weak和strong的区别

@property (nonatomic, assign) NSString *title; 什么是assign,copy,retain之间的区别? assign: 简单赋值,不更改索引计数(Reference Counting)。 copy: 建立一个索引计数为1的对象,然后释放旧对象 retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 weak 和strong的区

2016-12-07 21:07:08 275

原创 [UIView] insertView

- (void)addSubview:(UIView *)view;//添加到末尾- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;//添加目标视图的下面,会被盖住- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)sibling

2016-11-25 21:34:34 670

原创 导航字体颜色修改

//@{}代表Dictionary [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];

2016-11-25 21:04:32 476

原创 pod setup 失败解决[2016.11.18]

一 .fork cocoapos 原Specs 到自己的 github账户这样forke二 clone specs 到 repos下终端 cd /Users/用户名/.cocoapods/repos 到目录下git clone 你fork 到自己github的地址 下载文件将下载的文件名字改为master执行pod setup

2016-11-19 14:52:58 499

原创 gitHub Fork别人的项目

第一步:登陆自己的github账号第二部:进入需要fork的项目第三步: 耐心等待完成就ok了

2016-11-19 13:49:09 605

原创 IOS中的数据结构的概念(1)

IOS中的数据结构的概念(1)一 数据(类)描述现实世界事物的符号,在计算机中就是我们常用的对象喽,例如NSObject 、UIImageView、 Int、自定义的任何类对象都是数据。特点:可以输入到计算机中。能被我们编写的程序处理。数据元素(对象)组成数据的单位 例如男人、女人是人类的数据元素;跑车、三轮车、电瓶车,自行车是车类的数据元素。数据项(属性)组成数据元素的单位 ,数据对象性质

2016-11-19 00:02:12 1286

原创 线程同步

举例场景例子:重庆售票窗、上海售票窗都在卖一趟飞机票问题,出现两个售票窗同一时刻卖一张票这肯定是不合理,下面说解决方式解决方式线程锁,我们专业点,嗯线程同步GCD Semaphore (信号量)示例代码//"最后一张票,不骗你" __block NSInteger planeTicketCount = 1; // 创建线程锁 信号=1 dispatch_semaphor

2016-11-15 18:07:49 365

转载 xcode 断点卡死

只要一打断点,就无限卡死,变量区一直菊花在转,只有强制退出Xcode才能重新编译,找了Google和Stack OvewFlowe依然没有解决办法.删除项目,重新安装Xcode,重新运行程序一切办法都解决不到,百度上说的”build setting中将Enable Clang Module Debugging设置为NO`即可” 也不行,最后我找到解决的办法就是 1.工程名.xcworkspace (

2016-11-11 11:03:31 3907

空空如也

空空如也

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

TA关注的人

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