自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于[Moya]-打造更现代化的网络请求库

最近新项目开始尝试 Swift 混编,而我负责搭建底层库。在调研了很多开源的网络库后,最后选择了 Moya,本片文章也是对 Moya 使用过程的一个总结。Moya 是什么?Moya 是一个开源的网络请求库,它底层封装了Alamofire,对外提供简单易用的网络请求的接口。为什么选择 Moya?大家都知道在 Swift 2.0版本发布的时候,官方当时在Protocol-Oriented Program

2017-11-05 15:06:49 2495

转载 关于 Swift Error 的分类

Swift 错误类型的种类Simple domain error简单的,显而易见的错误。这种错误的最大特点是我们不需要关心原因,只需要知道错误发生,并且想要进行处理。用来表示这种错误发生的方法一般就是返回一个 nil 值。在 Swift 中,这类错误最常见的情况就是将某个字符串转换为整数,或者在字典尝试用某个不存在的 key 获取元素:// Simple Domain Error 的例子let nu

2017-11-05 06:54:02 761

转载 Objective-C 引用计数原理

引用计数如何存储有些对象如果支持使用 TaggedPointer,苹果会直接将其指针值作为引用计数返回;如果当前设备是 64 位环境并且使用 Objective-C 2.0,那么“一些”对象会使用其 isa 指针的一部分空间来存储它的引用计数;否则 Runtime 会使用一张散列表来管理引用计数。其实还有一种情况会改变引用计数的存储策略,那就是是否使用垃圾回收(用UseGC属性判断),但这种早已弃用

2017-10-17 17:24:06 842

转载 Objective-C Runtime

本文详细整理了 Cocoa 的 Runtime 系统只是,它使得 Objective-C 如虎添翼,具备了灵活的动态特性。OC 中的方法: [receiver message] ,其实是“给对象发送消息”。其实 [receiver message] 会被编译器转化为:objc_msgSend(receiver, selector)如果消息含有参数,则为:objc_msgSend(receiver,

2017-10-17 11:11:38 601

转载 八段代码彻底掌握 Promise

1.Promise的立即执行性var p = new Promise(function(resolve, reject){ console.log("create a promise"); resolve("success");});console.log("after new Promise");p.then(function(value){ console.log(value);

2017-08-12 12:11:19 627

原创 iOS开发--基础知识之`const`. `static`常量.

对于const修饰符来说, 最简单的理解方式为: const右边修饰的是什么, 则, 什么不可变. 如: int const *p = &c; 此时 p变量的指针不可变, 其指针地址不会变.及指针常量.int * const d = &b; 此时 const直接修饰变量d, 及变量d一旦初始化后, 其指针所指向的地址是不能被改变的. 但可以通过修改所指向的地址的值来改变变量d的值.下面通

2016-11-16 13:29:32 551

原创 iOS开发--"Library not found for -"错误处理

一般情况下,这种错误只会出现在引入存在.a文件的第三方库中, 而处理该错误的方法就是将.a文件的相对路径添加进->Target->BuildSetting->Library Search Path中, 并且添加以$(PROJECT_DIR)/开始的相对路径即可.说说这次遇到错误的前提:今天在做本地化语言处理,发现Cocoapods中的MJRefresh中有自己定义的中文语言. 随将其从Cocoapo

2016-04-20 18:51:08 2921

原创 iOS开发--自定义UIAlertController

在日常开发中,我们往往要满足各种需求,自定义AlertController颜色等,也算其一,那么,如何来自定义系统控件呢?下面提供了一种自定义UIAlertController的方式:通过KVO,我们可以给AlertController设置自定义attributedTitle,和attributedMessag、还可以给按钮设置图片等;同时,我们还可以通过设置TintColor的方式来改变按钮

2015-10-13 11:20:14 7326

原创 iOS开发--iOS9 SearchApi CoreSpotlight的使用

iOS9中, 苹果重新设计了搜索, 并且发布了CoreSpotLight.framework.App中一旦支持并将数据添加进系统搜索库中, 用户一旦使用系统搜索,那么,本App中的数据也会被检索出来. 点击索引项,则会跳转进App的指定页面中.这使得搜索功能变得异常强大. 那如何实现呢? 好了,下面大家可以去下载初始工程然后按着下面步骤来实现自己的搜索工程:首先介绍一下CoreSpotl

2015-09-19 15:33:03 2058

转载 iOS开发--Advanced NSOperations

前言这篇文章是对 WWDC 2015 Session 226: Advanced NSOperations 的一个小结,在那个视频中,Dave DeLong 分享了 NSOperation 的高级玩法,WWDC App 就是基于这套玩法做的,还是挺开阔思路的。NSOperation 和 NSOperationQueue 简介我们知道 NSOperation 可以执行一些

2015-09-06 10:11:59 1197

转载 iOS开发--iOS通知中心扩展制作入门(iOS Extensions)

扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非常大的功能点,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提供某些附加的功能。

2015-09-06 10:03:14 726

转载 iOS开发--Kiwi使用进阶 Mock, Stub, 参数捕获和异步测试

Kiwi 是 iOS 的一个行为驱动开发 (Behavior Driven Development, BDD) 的测试框架,我们在上一篇入门介绍中简单了解了一些 iOS 中测试的概念以及 Kiwi 的基本用法。其实 Kiwi 的强大远不止如此,它不仅包含了基本的期望和断言,也集成了一些相对高级的测试方法。在本篇中我们将在之前的基础上,来看看 Kiwi 的这些相对高级的用法,包括模拟对象 (mo

2015-08-29 15:35:29 1710

转载 iOS开发--TDD的iOS开发初步以及Kiwi使用入门

测试驱动开发(Test Driven Development,以下简称TDD)是保证代码质量的不二法则,也是先进程序开发的共识。Apple一直致力于在iOS开发中集成更加方便和可用的测试,在Xcode 5中,新的IDE和SDK引入了XCTest来替代原来的SenTestingKit,并且取消了新建工程时的“包括单元测试”的可选项(同样待遇的还有使用ARC的可选项)。新工程将自动包含测试的targe

2015-08-26 15:57:36 790

转载 iOS开发--CGBitmapContextCreate函数

CGBitmapContextCreate函数参数详解函数原型:CGContextRef CGBitmapContextCreate (   void *data,   size_t width,   size_t height,   size_t bitsPerComponent,   size_t bytesPerRow,   CGColorSp

2015-08-17 14:18:19 1959

原创 iOS开发--In-app Purchase内购验证方法

IOS7开始:AppStore增加了验证内购(In App Purchasement)的方法, 以确保此次支付是有效地.下面是苹果提供的验证地址:开发测试用:https://sandbox.itunes.apple.com/verifyReceipt产品用:https://buy.itunes.apple.com/verifyReceipt当购买成功时,会得到苹

2015-06-25 10:54:16 6106

原创 iOS开发--iOS7以上自定义leftBarButtonItem后系统滑动返回失效的完美解决方案

iOS7以上自定义leftBarButtonItem后系统滑动返回失效的完美解决方案

2015-05-09 18:38:23 3189

原创 iOS开发--修复iOS7以上自定义LeftBarbuttonItem后向右偏移

修复很简单: 在自己定义的item前边加一个FixedSpace的BarButton. UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemFixedSpace target:nil action:nil]; neg

2015-05-09 16:50:12 1688

转载 iOS开发--iOS应用架构谈 view层的组织和调用方案

前言《iOS应用架构谈 开篇》出来之后,很多人来催我赶紧出第二篇。这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分。现在好啦,第二篇出来了。当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了,然后此时需要做非常彻底的重构。一般也就是这两种时机会去做View层架构,基于这

2015-04-29 11:10:40 1052

转载 iOS开发--iOS应用架构谈 开篇

缘由之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你会从哪些方面来说呢?当时看到这个问题正好在乘公车回家的路上,闲来无聊就答了一把。在zzz在微信朋友圈上追问了几个问题之后,我觉得有必要开个博客专门来讲讲一些个人见解。

2015-04-29 11:04:45 801

转载 iOS开发--利用NSProxy实现消息转发-模块化的网络接口层设计

前言之前在做项目的时候,所有业务的网络接口方法,全部都写在了一个文件里面,一开始还好,毕竟每个方法的代码也只是十几行,增加、修改也比较容易。但是随着接口的增多,这个文件慢慢居然超过了1000行,里面几十个方法都写在一起,实在是不好维护。虽然保持这样也没有什么,多用用Cmd+F就能找到。但是,真是越看越不顺眼

2015-04-05 12:37:19 2779 1

转载 iOS开发--一个工程中添加多个工程

下面举例了添加ZXing到自己的project中,其他的类似:After an upgrading to Xcode 4, I have been having trouble compiling my own ZXing iOS project.So I decided to explain you how to install easily ZXing with Xco

2015-03-25 13:56:29 868

原创 iOS开发 -- 使用facebook的chisel来提高调试效率

使用facebook的chisel来提高调试效率

2015-03-09 14:34:41 1010 1

原创 iOS开发--KVC & KVO

键值编码允许开发者通过名字访问对象属性, 而无需调用明确的存取方法, 这样,就可以在运行时确定属性的绑定, 而不是在编译时确定.(可以动态访问属性)例如可以通过[object valueForKey: someProperty];表达式来请求由字符串变量someProperty命名的属性值, 也能用[object setValue: someValue forKey: someProperty

2015-02-08 14:12:04 884

原创 iOS开发--使用崩溃地址找BUG

根据所报错误来找错误行数:cd进所打包成功后的文件夹:cd /Users/Andou/Desktop/JobProject/备份/闪传备份/Xender\ Backup/InternationalVersion/Xender\ 1.4.0/ExMessager\ 15-1-19\ 下午5.54.xcarchive/dSYMs 记得每次上传到itunes后都要将打包文件.

2015-01-30 10:07:35 971

原创 iOS开发--好用的第三方库(OC)<持续更新>

总结了iOS开发上的常用第三方类

2014-12-21 16:56:17 3088

原创 iOS开发--使用CocoaLumberjack-DDLog

DDlog库可以让Xcode的输出台变得五彩缤纷,同时可以控制打印的开关.对于调试很是方便.  下面介绍一下安装方法.    一、安装xCode扩展插件XcodeColors    1.下载地址:https://github.com/robbiehanson/XcodeColors    2.下载完成后,打开XcodeColors项目,编译即可。    3.完全退出xC

2014-12-20 23:26:50 3059

转载 iOS开发--CocoaPods pod install/pod update更新慢的问题

最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:pod install --verbose --no-repo-updatep

2014-12-13 19:19:30 910

转载 iOS开发--Xcode6: CocoaPods 错误 target overrides the `OTHER_LDFLAGS`

CocoaPods 错误 target overrides the `OTHER_LDFLAGS`...Xcode 升级到 6.0 后,更新 CocoaPods,出现了如下的警告[!] The `Paopao [Debug]` target overrides the `PODS_ROOT` build setting defined i

2014-12-12 15:11:54 2706

原创 iOS开发--使用cocoapods更新工程报错

在使用CocoaPods添加第三方库时出现:Installing AFNetworking (2.5.0)[!] Error installing AFNetworking[!] /usr/bin/git clone https://github.com/AFNetworking/AFNetworking.git /Users/dev

2014-12-06 13:21:45 1785

原创 iOS开发--使用Xcode6给项目重命名

第一步:双击你的项目名, 然后修改你想修改后的名字修改后:会弹出视图,点击Rename点击Manage Schemes:选中项目名后按ENTER键,修改为自己的名字修改后:这时你的项目名已经修改成功!

2014-11-27 09:29:08 1308

原创 iOS开发--iOS8中设置TableViewSepartorInset

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ if ([tableView respondsToSelector:@selector(setSeparatorInset:)])

2014-10-28 16:19:57 1319

转载 iOS开发--TableView向上偏移的情况

if (IOS7_OR_LATER)                                  {                                                        self.edgesForExtendedLayout = UIRectEdgeNone;         self.extendedLayoutInclud

2014-10-14 22:50:51 5068

原创 iOS开发--iTunes被拒

被拒原因:Dear developer,We have discovered one or more issues with your recent delivery for "++". To process your delivery, the following issues must be corrected:Your binary is not optimized fo

2014-09-19 13:51:49 4470

原创 iOS开发--跳转进入AppStore评论页面

NSString *appID = @"898129576";            NSString *url = [NSStringstringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",

2014-09-19 11:41:45 2239

转载 iOS开发--使用NSTimeInterval获取2个时间间隔

想在程序开始或者进入某个界面 ,到结束程序或退出某个界面,获取到这个持续时间. 获取到这个时间还需要转化一个取得时分秒.-(NSString *)getCurrentTime{    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];    [formatter setDateFormat:@"yyy

2014-09-09 12:37:21 3543

原创 iOS开发--播放系统注册声音

注:此声音可以和AVAudioPlay一同播放,类似于系统提示音。首先要yin#import 代码如下:-(void)playSendSound{ NSString *string = [[NSUserDefaults standardUserDefaults] objectForKey:@"SOUND_PLAY"]; //这里用string来控制是否播放Sound.

2014-09-04 09:25:55 1291

原创 iOS开发之音乐播放----监听耳机拔插

添加监听事件: [AVAudioSession sharedInstance]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioRouteChangeListenerCallback:)

2014-08-28 10:13:33 5225

原创 iOS开发之音乐播放----监听系统音量变化

需要在didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中加入一下监听事件:

2014-08-28 09:36:19 2860

转载 POP — Facebook开源动画引擎

项目主页:https://github.com/facebook/pop小编语:看到POP这个东西的时候,小编兴奋了。Facebook的Paper的动画效果还用说吗??如果是自己写的话。。各种难以实现呀。现在它开源了!!github上没有什么Demo,只找到部分学习资料,先发上来提供大家研究一下。Demo:PopTut:一个使用POP做动效的示例工程。http:

2014-08-04 17:26:54 1110

原创 POD报错

使用pod添加文件后,如何运行后出现下面这种情况:

2014-08-04 14:31:11 801

空空如也

空空如也

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

TA关注的人

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