自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 RxSwift样例七 SearchWikipedia

跳过几个简单介绍RxTablview等属性的代码。剩余的例子只剩下俩个了。今天来分析SearchWikipedia let results = searchBar.rx.text.orEmpty .asDriver() .throttle(0.3) .distinctUntilChanged()

2017-08-23 17:31:16 244

原创 RxSwift 样例六 Calculator

APIWrappers是简单介绍API使用的,就不会讲了,可以说看一遍就好了,这种东西,熟能生巧别无他法。Calculator 相信是每个初学者都做过的项目。回想当初一坨不忍直视的代码,相信你看到RxSwift的样例会觉得,还有这样简洁的计算器!实在惭愧,入行几年我自认为写不出这样的分级,每天工作都被业务代码填充。几乎没有多少时间自己琢磨精妙的代码,时常会感觉到了瓶颈,希望能借这一系列博客学到大牛编

2017-08-18 16:38:37 194

原创 RxSwift样例五 GitHubSignup

GitHubSignup 这个demo是相对比较大的demo,计划分俩次来讲。可以看到有两个一样的storyboard。他们只有使用driver和使用Observer的区别。看一个就足够了,以driver为例。可以看到主要的代码逻辑在GithubSignupViewModel2里面,在controller里面将controller的值与model绑定,这也是使用响应式开发最便捷的代码MVVM分级。m

2017-08-18 15:38:52 327

原创 RxSwift样例四 GeolocationExample

GeolocationExample 是取地理位置的demo。 GeolocationViewController中的代码只有几句话,之前的例子没有出现过的只有driver。其实driver很好理解,类似Observable和bind的方法,但是没有error而且必须在主线程使用。 重点来看GeolocationService中的代码。GeolocationService是一个单例,swift中

2017-08-17 12:52:38 211

原创 RxSwift样例三 SimpleValidation

SimpleValidation简单的登录界面 let usernameValid = usernameOutlet.rx.text.orEmpty .map { $0.characters.count >= minimalUsernameLength } .shareReplay(1) // without this map would

2017-08-17 10:45:21 198

原创 RxSwift样例二 NumbersViewController

这个计算模块的代码非常少,理清几个概念就可以轻松读懂Observable.combineLatest是把n个序列作为参数糅合在一起返回一个序列的方法。number1.rx.text.orEmpty number1.rx.text是封装的rxCocoa的UITextField,orEmpty相当于!,解包,不同于!的是值为空时不会崩溃,而是返回一个nildisposed(by: disposeBag

2017-08-17 10:07:20 213

原创 RxSwift 样例一 imagePicker

RxSwift简介RxSwift 是swift原生的reactive响应式开发库。git地址为 https://github.com/ReactiveX/RxSwift。与RxJava,RxPhp是统一家族。 git代码clone后,打开workspace,编译一下(注意要选择mac),然后通读一遍playground里面的代码实例,就会明白它的基本API用法。如果英文不好的同学可以在其他博客里面

2017-08-16 18:00:06 650

原创 SceneKit 太阳系小demo

最近新仿照之前的demo思路写了一个swift版本的太阳地球月球模型,准备这几天扩展为太阳系模型。 代码链接如下 [link 代码](https://github.com/ZXCocoa/SunModel) 代码比较简单,必要地方有注释,其余的新接触的东西是属性居多,看一下文档的释义就比较清楚

2017-06-14 23:26:56 597

原创 ARKit 初探

ARKit 初探2017年WWDC刚刚发布了一个新的ios库,ARKit。演示的demo酷炫无比,心痒难耐动手看看库里到底有什么好东西。新建一个ARKit的项目,可以发现引入了三个库 import UIKit import SceneKit import ARKit UIKit不用多说,SceneKit是苹果之前出的iOS8之后的展示3D效果的库。只有粗略探究过一段时间,基本的用法都看过,不

2017-06-08 17:18:09 596

原创 SceneKit初识

公司的需求是在应用中内嵌一个简单的3D场景。在考察了webOpenGL和unity3d之后还有苹果自家的SceneKit,还是准备用原生的API。原因有两点:一,公司都没有人懂这几个技术,做都需要请外边的人来,扩展性比较差。二,web的用户体验毕竟没有native的好,但是我们的app只有部分使用3d,场景并不复杂,接入unity的成本比较高。所以看了几天scenekit的api,基本实现了需求所

2016-06-18 17:10:53 7186 5

原创 weak和assign的区别

工作之后,一直使用ARC,weak作为property的关键字之一,代表弱引用,对象的引用计数不改变。从内存管理上说这点和assign是相同的。 俩者的不同在于 1.weak 此特质表明该属性定义了一种“非拥有关系” (nonowning relationship)。为这种属性设置新值时,设置方法既不保留新值,也不释放旧值。此特质同assign类似, 然而在属性所指的对象遭到摧毁时,属性值

2016-05-15 09:53:00 690

转载 常见排序算法

插入排序 基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 要点:设立哨兵,作为临时存储和判断数组边界之用。 void InsertSort(int a[], int n)   {       for(int i= 

2016-04-25 22:42:54 199

原创 ios键盘高度监听

- (void)keyboardNotifiation{ //注册键盘出现的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardWillShowNotification object:nil]; //键盘变

2016-03-08 16:06:46 419

转载 触摸事件

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { }    这个函数的用处是判断当前的点击或者触摸事件的点是否在当前的view中。    它被hitTest:withEvent:调用,通过对每个子视图调用pointInside:withEvent:决定最终哪个视图来响应此事件。如果

2016-03-08 10:34:01 333

原创 loadNibName 崩溃

在新建xib的时候,一个控件连多了关系,(摁control的那个),代码删掉了,但是xib中的关系不会自动删除。导致键值不匹配,加载xib失败。

2016-02-18 20:33:08 705

转载 UIView的setNeedLayout layoutIfNeeded LayoutSubviews

转自:http://blog.csdn.net/meegomeego/article/details/39890385 -layoutSubviews      1、initWithFrame初始化,frame的值不为CGRectZero时会调用。 2、addSubviews会触发 3、改变view的Frame会触发(父类) 4、滚动UIScrollView会触发layoutSu

2016-02-01 12:30:58 863

原创 iOS 选择图片过滤掉视频文件

UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init]; pickerImage.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; pickerImage.mediaTypes = [[NSArray alloc] i

2016-01-27 15:57:18 1508

转载 转载自简书 稻草人家

在项目中,我们经常会碰到使用位置的需求。当用户设置app不允许使用位置的时候,最好的用户体验就是直接调转到系统的位置设置界面,进行设置。 本人已经测试,在5c iOS8.3系统 和 5s iOS7.1系统中可以正常跳转 跳转到自己的项目中 在需要调转的按钮动作中添加如下的代码,就会跳转到设置中自己的app的设置界面,这里会有通知和位置权限的设置 NSURL *

2016-01-13 17:57:42 377

原创 NSUserDefaults

NSUserDefaults 储存NSInteger类型时不用通用方法,用 userdefault setInteger:forKey:

2015-12-22 23:52:01 371

原创 iOS 定位 location heading beacon 初步定位

iOS 8 之后定位需要加字段在info.plst里面,NSLocationAlwaysUsageDescription  一直定位、NSLocationWhenInUseUsageDescription 使用时定位 苹果目前允许beacon在后台一直搜寻,但是传统的定位会以损耗电池为由拒绝通过。(未验证beacon后台可以上线) 定位的heading,即方向是不需要用户同意的,判断设备可用即可。

2015-12-22 23:18:28 1202

原创 CoreData

CoreData是苹果主推的数据持久化方式,一般iOS开发中用到的数据持久化的还有SQLite,NSUserDefaults。CoreData其实是对SQLite的封装,使更具有面向对象的特征,并且写法简单。 CoreData中的核心对象 NSManagedObjectContext  :临时上下文,负责应用和数据库之间的交互,修改数据就是先修改NSManagedObjectContext然后通

2015-11-08 14:20:34 373

原创 URLSession

NSURLSession是xcode7.0之后的请求网络的新API,是代替NSURLConnection的。在2013年苹果的技术发布会上首次提出,xcode7.0后正式废除NSURLConnection方法。    不同于NSURLConnection需要设置同步异步请求,NSURLSession是自动创建子线程来进行网络请求,所以要在回调方法中需要用主线程刷新。  而且NSURLSessi

2015-11-04 20:44:21 402

原创 iOS UIALertViewController常用方法

在iOS 8之后,UIAlertView和UIActionSheet方法都废弃了,在XCode7.0版本之前还不会提示,在7.0之后的版本这俩者会报红提示方法废弃。 "UIActionSheet is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleActionSheet ins

2015-10-31 15:26:02 1006

原创 ios响应者链

iOS中触发事件有很多,最常见的就是触摸事件,以触摸事件为例,Cocoa Touch框架中响应者链为:硬件先接受到事件信息,传递给UIApplication->ApplocationDelegate->UIWindow->视图控制器(如果有)->视图A->遍历子视图->视图控制器(如有)->子视图B>B的子视图,如果无,传给A的其他子视图。直到找到合适的处理控件为止。 控件找到后,调用控件的响应

2015-10-30 20:48:33 447

原创 GCD

GCD 是基于C的API,所以写起来相当底层,全是block语法块,也是苹果主推的线程处理方法,简洁高效 dispatch_async(dispatch_get_main_queue(), ^{ }); GCD异步,使用频率相当高,第一个参数是获取执行此异步方法的线程,然后是block决定此异步具体做何方法 dispatch_sync(dispatch_get_

2015-10-26 22:30:02 470 1

原创 iOS多线程2 Opertaion补充

Operation 可以添加依赖 [operation1 addDependency:operation2];  这样保证operation1在operation2之后执行.有添加依赖就有删除依赖 [operation1 removeDependency:operation2]; operation还可以设置优先级[operation1 setQueuePriority:NS

2015-10-24 16:15:45 437

原创 iOS多线程1 Operation

iOS中多线程有三种,但是一般用俩种。NSThread基本不会用到,个人理解为封装度不如NSOperation,需要手动管理线程的生命周期,基本不会使用,效率未知,有的博主认为NSThread比GCD轻量级,个人认为GCD效率是最高的,未经测试!!! NSOperation是抽象类,不会直接创建线程,需要子类化,NSInvocationOperation或者NSBlockOperation。

2015-10-23 22:26:50 404

原创 iOS中表示空的区别

有次判断数组为空,编译崩了不知道为什么,查过才知道iOS中各种表示空的关键词不一样。以下是我理解的区别 nil 表示对象空,OC是面向对象的语言,操作的基本都是各种对象,所以nil的频率是最高的,但判断数组元素是否为空不能用 array == nil ,因为这表示数组array是否被创建出来,即array若等于nil,表示array并未被初始化分配内存。 Nill 表示类空。 是类的指针,判断

2015-10-23 19:32:27 432

空空如也

空空如也

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

TA关注的人

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