自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rabe.W

Write the code, Change my world.

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

转载 谈谈Objective-C的警告

原文链接:http://www.tuicool.com/articles/MbuIj2重视编译警告现在编译器有时候会很吵,而编译器给出的警告对开发者来说是很有用的信息。警告不会阻止继续编译和链接,也不会导致程序不能运行,但是很多时候编译器会先你一步发现问题所在,对于Objective-C来说特别如此。 Clang 不仅对于明显的错误能够提出警告(比如某方法或者接口未实现

2016-10-25 16:54:03 362

原创 Swift中defer在oc中的实现

#ifndef nob_defer_h#define nob_defer_h// some helper declarations#define _nob_macro_concat(a, b) a##b#define nob_macro_concat(a, b) _nob_macro_concat(a, b)typedef void(^nob_d

2016-09-28 15:47:41 965

转载 iOS 万能跳转界面方法 (runtime实用篇一)

在开发项目中,会有这样变态的需求:推送:根据服务端推送过来的数据规则,跳转到对应的控制器feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)思考:wocao!这变态的需求,要拒绝他吗?switch判断呗,考虑所有跳转的因素?这

2016-09-27 17:04:39 435

转载 让你的 Xcode8 继续使用插件

原文链接:http://vongloo.me/2016/09/10/Make-Your-Xcode8-Great-Again/?nsukey=qVmKvYYDbVNFMYG0cBCQgZX6cinr26wissewYVj0T0PBRBlAF8AgPr4ID%2FGr5GtfLNNSlVLyLZBuCzHap8bY0A%3D%3D本人使用的是github的方法,亲测可用,

2016-09-23 11:53:03 1286

转载 基于面向协议MVP模式下的软件设计-(iOS篇)

传统模式下的开发MVCMVVM基于面向协议MVP的介绍MVP实战开发说在前面:相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板。随着时间的推移,在iOS平台上MVC也逐渐开始面临着越来越多的问题,最近又开始流行MVVM,MVVM使由MVC衍生而来,MVVM作为一种新的开发模式和响应式编程相结合用来解决一部分业务场景等,今天,本我我要介绍给大家的是一个新

2016-09-07 09:44:26 647

原创 设置TableViewCell横线偏移量

#pragma mark - UITableViewDelegate & UITableViewDataSource-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{    

2016-08-31 14:23:11 287

原创 模型dict打印输出@property

我们在创建模型的时候,常常要写一大堆恶心的@property(nonatomic, copy) NSString *name;垃圾代码,遇到这个就恶心的想吐,给NSObject添加一个分类,当传入一个字典会自动生成打印处理,接下来需要做的就是command + c然后command + v到自己的模型中

2016-08-05 17:47:45 707

转载 UINavigationBar属性及返回按钮更改小结

有时候这些属性搞得蛮乱的,记录下以便查阅UINavigationBar属性如果想统一设置,可以通过以下方法,获取当前类下的所有对象的导航条,然后在+initialize方法中进行设置[UINavigationBar appearanceWhenContainedIn:self, nil];背景图片// barMetrics需要设置成UIBar

2016-08-01 14:49:55 895

转载 有趣的Autolayout示例-Masonry实现

原文:http://tutuge.me/2015/05/23/autolayout-example-with-masonry/?comefrom=http://blogread.cn/news/前言好久没有写Blog了,这段时间有点忙啊=。=本文举了3个比较有“特点”的Autolayout例子,源于微博上好友的提问,感觉比较有意思,也比较有代表性,就写了出来,分享给

2016-07-28 11:00:32 398

转载 BlocksKit源码分析

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

2016-07-14 15:55:40 261

转载 iOS开发之--- NSURLProtocol

最近在项目里由于电信那边发生dns发生域名劫持,因此需要手动将URL请求的域名重定向到指定的IP地址,但是由于请求可能是通过NSURLConnection,NSURLSession或者AFNetworking等方式,因此要想统一进行处理,一开始是想通过Method Swizzling去hook cfnetworking底层方法,后来发现其实有个更好的方法–NSURLProtocol。NSURLPro

2016-05-18 10:34:45 346

转载 ios 找出导航栏下面的黑线(可隐藏,改变样式等)

根据UI的设计,navigationbar需要跟界面一体化,但是下面这根黑线是比较烦的问题,可能界面一需要隐藏,界面二就要出现,也可能需要改变粗细之类的,又因为navigationbar会影响接下来的推栈,所以需要做一点小改动. 方法1:直接隐藏: //在页面出现的时候就将黑线隐藏起来 -(void)viewWillAppear:(BOOL)animated { [self.na

2016-04-27 12:20:16 1187

转载 Notification Once为AppDelegate瘦身

Notification Once前段时间整理项目中的AppDelegate,发现很多写在- application:didFinishLaunchingWithOptions:中的代码都只是为了在程序启动时获得一次调用机会,多为某些模块的初始化工作,如:- (BOOL)application:(UIApplication *)applicationdidFini

2016-04-13 17:40:18 706

原创 github的contributions不增长fix

查看本地git邮箱:git config user.email然后在github里的accout settings》email里看看你的primary github email 是不是你本地那个邮箱。 改一下就好了git config --global user.email "me@here.com"参考文章:https://help.github.com/articles/why-are-my-

2016-04-12 16:38:44 358

转载 ReactiveCocoa v2.5 源码解析 之 架构总览

原文:http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=402206631&idx=5&sn=4de00f0db60efa7c75c211b329717f14&scene=0#wechat_redirectReactiveCocoa 是一个 iOS 中的函数式响应式编程框架,它受 Functional Reactive

2016-04-08 16:26:52 545

转载 ReactiveCocoa入门教程——第二部分

本文翻译自RayWenderlich  ReactiveCocoa Tutorial – The Definitive Introduction: Part 2/2译文: http://benbeng.leanote.com/post/ReactiveCocoaTutorial-part2 ReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编

2016-04-06 10:36:37 259

转载 ReactiveCocoa入门教程——第一部分

本文翻译自RayWenderlich  ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2译文: http://benbeng.leanote.com/post/ReactiveCocoaTutorial-part1作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络

2016-04-06 10:35:43 250

原创 GCD实现倒计时且后台运行不影响计数

利用苹果给出的三种类型的程序可以保持在后台运行:音频播放类AVFoundation 在Build Phases添加依赖库  1、步骤一:在Info.plist中,添加"Required background modes"键,value为:App plays audio or streams audio/video using AirPlay2、步骤二:- (

2016-03-29 15:53:45 3412 1

转载 我从55个Swift标准库协议中学到了什么?

本文由CocoaChina译者@ALEX吴浩文翻译作者:Greg Heo原文:What the 55 Swift Standard Library Protocols Taught Me(注:上图是演讲视频,需翻墙)Swift团队使用协议的方法,给了我们哪些使用协议的提示?好的。55个Swift标准库公有协

2016-03-10 10:38:13 376

转载 偷师饿了么:怎样用HTTP/2优化iOS APP网络层次架构?

“ HTTP/2,是HTTP协议发布后的首个更新,于2015年2月17日被批准。它采用了一系列优化技术来整体提升HTTP协议的传输性能,如异步连接复用、头压缩等等,可谓是当前互联网应用开发中,网络层次架构优化的必选方案之一。Apple对于HTTP/2的态度也非常积极,5月HTTP/2正式发表后不久,便在紧接着6月召开的WWDC 2015大会中,向全球开发者宣布,iOS 9 开始支持HTTP

2016-03-07 16:53:32 812

原创 DXXcodeConsoleUnicodePlugin debug栏打印时自动把/ueo6转化成汉字

升级Xcode插件的python脚本转换 Xcode 控制台中一些不可阅读的字符。比如:Error Domain=kCFErrorDomainCFNetwork Code=310 "\u4e0e\u5b89\u5168 web \u4ee3\u7406\u670d\u52a1\u5668 (HTTPS) \u901a\u4fe1\u65f6\u51fa\u73b0\u95e

2016-03-07 10:54:15 1800

转载 iOS高效添加圆角效果实战讲解

圆角(RounderCorner)是一种很常见的视图效果,相比于直角,它更加柔和优美,易于接受。但很多人并不清楚如何设置圆角的正确方式和原理。设置圆角会带来一定的性能损耗,如何提高性能是另一个需要重点讨论的话题。我查阅了一些现有的资料,收获良多的同时也发现了一些误导人错误。本文总结整理了一些知识点,概括如下:设置圆角的正确姿势及其原理设置圆角的性能损耗其他设

2016-03-07 10:33:08 403

转载 谈Runtime机制和使用的整体化梳理

相比“凌波微步”的Swift,Object-C被誉为“如来神掌”。传说Runtime就是支持这“如来神掌”说法的最好体现。听起来总是这么的神秘高级,于是总能在各个论坛看到碎片资料,时间一长总记不住哪里是哪里,每次都要打开好几个网页。这种记不住象现显然是知识体系还不完整重要体现。还是自己从Runtime的思想到动手代码呈现上做出总结尚为上策。学习流程图一、

2016-03-04 15:36:53 305

转载 用 UIBezierPath 和 CAShapeLayer 画各种图形

CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你。杂谈在 CAShapeLayer 中,也可以像 CALayer 一样指定它的 frame 来画,就像这样:Objective-C12345let

2016-03-04 15:02:48 274

转载 Runtime那些事儿(消息机制)

一、关于runtime之前在项目中有遇到过用runtime解决改变全局字体的问题,所以再一次感受到了runtime黑魔法的强大,趁现在有机会分享一下对runtime的一些理解。在对象调用方法是Objective-C中经常使用的功能,也就是消息的传递,而Objective-C是C的超集,所以和C不同的是,Objective-C使用的是动态绑定,也就是runtime。Objecti

2016-03-04 14:59:57 298

转载 揭开NSObject的面纱

对于NSObject来说,我们可是非常熟悉的了,它是objc中大多数类的基类。注意,并不是所有的类都继承于NSObject,比如NSProxy类。详细的类图可以参考这篇文章IOS 整体框架类图,讲的很详细。 既然要深入学习objc,我们不妨从最熟悉的NSObject类开始,让我们来看一看它的源码吧! 首先,我们来看看NSObject.h这个头文件,我们很容易从X

2016-03-03 17:42:03 323

转载 Cocoa对象 根类

Cocoa对象 根类是本文要介绍的内容,仅凭Objective-C语言和运行环境并不足以构造哪怕是最简单的面向对象的程序,至少是不容易的。还缺少一些东西:即所有对象公有的基本行为和接口的定义。根类正是提供了这些定义。之所以叫根类,是因为它位于整个类层次(这里是指Cocoa的类层次)的根上。根类不从其它类继承,但是类层次中的所有其它类都最终从根类继承下来。根类连同Objective-C语言,是Coc

2016-03-03 16:54:26 304

转载 Git .DS_Store 引起的麻烦解决办法

git在pull时,出现这种错误的时候,可能很多人进进行stash,相关stash的请看:Error pulling origin: error: Your local changes to the following files would be overwritten by merge但是发现stash后还是会出现:Error pulling origin: error: Th

2016-01-12 11:00:49 4272

转载 iOS中GCD的使用小结

来源网址:http://www.jianshu.com/p/ae786a4cf3b1?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=qq本篇博客共分以下几个模块来介绍GCD的相关内容:多线程相关概念多线程编程技术的优缺点比较?GCD中的三种队列类型The main queue(

2015-11-26 10:33:58 325

转载 Git 常用命令和 Git Flow 梳理

git用 git 有一段时间了,之前没有详细地了解 git flow,导致协作过程中或多或少出现了一些头疼问题。最近静下心来理了下 git flow 的整个流程,再回头看开朗了不少,总结到这里。介绍的是一些常用的 git 基础命令和 git flow,当然也很重要的,过程中自己在 Github 上建了一个模拟的 Demo 用来熟悉 git flow。其实从理解到动手完成还是有点距离

2015-11-26 10:32:47 523

原创 iOS修改UIWebView中的图片大小

1.使用css进行图片的自适应在web前端,也就是HTML中,如果只设置图片的宽度,那么高度会根据图片原本尺寸进行缩放。如果后台返回的HTML代码中,不包含标签,则可以直接在HTML字符串前加上一下面的代码(如果包含,则在标签内部添加)。代码含义是,不管用户以前设置的图片尺寸是多大,都缩放到宽度为320px大小。head>style>img{width:320px !importa

2015-11-09 13:54:47 722

原创 通过PDF矢量图片自动生成@1x, @2x, @3x切图

这个的确很烦,因为每个app的每个设计师被问这个问题都至少一年了。貌似苹果每年都会增加一种新的屏幕分辨率,今年我也持怀疑态度。随着硬件技术的发展,苹果总是走在前沿,总是在尽可能地提高屏幕的ppi。很不幸,这意味着我们不能直接在“预览”中放大已有的图片,因为这会造成诸如图片像素化和产生锯齿等问题。通俗点,就是我们的图片变丑了,噁!每次你叫设计师出一张已有图片的3x分辨率图,某个地方就又要死一只独角兽

2015-11-05 10:35:34 2093

原创 通过UIImageRenderingMode改变工程图片颜色

在两个大版本升级之后,我还能看到这样的代码。在iOS7中,我们有了imageWithRenderingMode,这是UIImage的一个方法,参数是有三个选项的枚举值UIImageRenderingMode。typedef NS_ENUM(NSInteger, UIImageRenderingMode) {UIImageRenderingModeAutomatic,

2015-11-05 10:31:09 623

翻译 Alcatraz不显示Load Bundle解决办法

最近很多人升级Xcode6.3.2版本后,Alcatraz失效了,解决办法:在命令行执行以下命令:[plain] view plaincopyprint?defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID    E969541F-

2015-10-24 17:05:44 1789 1

翻译 self 的循环引用

self 的循环引用当使用代码块和异步分发的时候,要注意避免引用循环。 总是使用 weak 来引用对象,避免引用循环。(译者注:这里更为优雅的方式是采用影子变量@weakify/@strongify 这里有更为详细的说明) 此外,把持有 block 的属性设置为 nil (比如 self.completionBlock = nil) 是一个好的实践。它会打破 block 捕获的作用域带

2015-10-21 10:48:42 395 2

原创 iOS日期转星期

- (NSString*)weekdayStringFromDate:(NSDate*)inputDate {        NSArray *weekdays = [NSArrayarrayWithObjects:                         [NSNull null], @"星期日",@"星期一",@"星期二",      

2015-10-13 11:47:47 542

翻译 使用Associated为分类添加属性

////  UIViewController+CoreData.h//  ADBFeedReader////  Created by Alberto De Bortoli on 20/05/2013.//  Copyright (c) 2013 Alberto De Bortoli. All rights reserved.//#

2015-10-08 16:29:54 440

转载 iOS抽象工厂模式-class cluster

类簇 (class cluster)类簇在Apple的文档中这样描述:an architecture that groups a number of private, concrete subclasses under a public, abstract superclass. (一个在共有的抽象超类下设置一组私有子类的架构)如果这个描述听起来很熟悉,说明你的直觉是对

2015-10-08 11:46:29 355

原创 获取当前控制器

- (UIViewController *)getCurrentVC {    UIViewController *result = nil;        UIWindow * window = [[UIApplicationsharedApplication] keyWindow];    if (window.windowLevel !=UIWin

2015-09-08 09:39:56 280

原创 git多账户使用及配置

生成账户A若第一次配置,在终端执行如下命令mkdir .ssh cd .ssh进入.ssh文件夹,执行命令:ssh-keygen -t rsa -C "accountA@example.com"然后一直按回车(A账户使用默认命名,不要密码) 此时.ssh文件夹内会生成如下2个文件id_rsa 、id_rsa.pub将其中id_rsa.pub添加到你账户A下的ssh管理库里生成账户B按照以上方法生

2015-09-02 10:48:46 483

空空如也

空空如也

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

TA关注的人

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