![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
文章平均质量分 60
阿荣的梦境
这个作者很懒,什么都没留下…
展开
-
谈谈Objective-C的警告
原文链接:http://www.tuicool.com/articles/MbuIj2重视编译警告现在编译器有时候会很吵,而编译器给出的警告对开发者来说是很有用的信息。警告不会阻止继续编译和链接,也不会导致程序不能运行,但是很多时候编译器会先你一步发现问题所在,对于Objective-C来说特别如此。 Clang 不仅对于明显的错误能够提出警告(比如某方法或者接口未实现转载 2016-10-25 16:54:03 · 364 阅读 · 0 评论 -
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 · 1803 阅读 · 0 评论 -
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 · 3419 阅读 · 1 评论 -
谈Runtime机制和使用的整体化梳理
相比“凌波微步”的Swift,Object-C被誉为“如来神掌”。传说Runtime就是支持这“如来神掌”说法的最好体现。听起来总是这么的神秘高级,于是总能在各个论坛看到碎片资料,时间一长总记不住哪里是哪里,每次都要打开好几个网页。这种记不住象现显然是知识体系还不完整重要体现。还是自己从Runtime的思想到动手代码呈现上做出总结尚为上策。学习流程图一、转载 2016-03-04 15:36:53 · 306 阅读 · 0 评论 -
用 UIBezierPath 和 CAShapeLayer 画各种图形
CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你。杂谈在 CAShapeLayer 中,也可以像 CALayer 一样指定它的 frame 来画,就像这样:Objective-C12345let转载 2016-03-04 15:02:48 · 277 阅读 · 0 评论 -
Runtime那些事儿(消息机制)
一、关于runtime之前在项目中有遇到过用runtime解决改变全局字体的问题,所以再一次感受到了runtime黑魔法的强大,趁现在有机会分享一下对runtime的一些理解。在对象调用方法是Objective-C中经常使用的功能,也就是消息的传递,而Objective-C是C的超集,所以和C不同的是,Objective-C使用的是动态绑定,也就是runtime。Objecti转载 2016-03-04 14:59:57 · 299 阅读 · 0 评论 -
揭开NSObject的面纱
对于NSObject来说,我们可是非常熟悉的了,它是objc中大多数类的基类。注意,并不是所有的类都继承于NSObject,比如NSProxy类。详细的类图可以参考这篇文章IOS 整体框架类图,讲的很详细。 既然要深入学习objc,我们不妨从最熟悉的NSObject类开始,让我们来看一看它的源码吧! 首先,我们来看看NSObject.h这个头文件,我们很容易从X转载 2016-03-03 17:42:03 · 326 阅读 · 0 评论 -
Cocoa对象 根类
Cocoa对象 根类是本文要介绍的内容,仅凭Objective-C语言和运行环境并不足以构造哪怕是最简单的面向对象的程序,至少是不容易的。还缺少一些东西:即所有对象公有的基本行为和接口的定义。根类正是提供了这些定义。之所以叫根类,是因为它位于整个类层次(这里是指Cocoa的类层次)的根上。根类不从其它类继承,但是类层次中的所有其它类都最终从根类继承下来。根类连同Objective-C语言,是Coc转载 2016-03-03 16:54:26 · 305 阅读 · 0 评论 -
iOS 开发者能用上的 10 个 Xcode 插件
1. XcodeColors:给 Xcode 控制台添加颜色2. XToDo:这个插件不仅高亮 TODO、 FIXME、 ???,还高亮 !!! 注释3. Backlight:高亮当前正在编辑的那一行4. CocoaPods 插件:依赖管理助手5. ACCodeSnippetRepository:把代码同步到 git 仓库6. GitDiff:在 Xcode 高亮当前修改和上次提交之间的转载 2015-07-09 14:39:15 · 669 阅读 · 0 评论 -
iOS修改UIWebView中的图片大小
1.使用css进行图片的自适应在web前端,也就是HTML中,如果只设置图片的宽度,那么高度会根据图片原本尺寸进行缩放。如果后台返回的HTML代码中,不包含标签,则可以直接在HTML字符串前加上一下面的代码(如果包含,则在标签内部添加)。代码含义是,不管用户以前设置的图片尺寸是多大,都缩放到宽度为320px大小。head>style>img{width:320px !importa原创 2015-11-09 13:54:47 · 726 阅读 · 0 评论 -
ReactiveCocoa入门教程——第一部分
本文翻译自RayWenderlich ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2译文: http://benbeng.leanote.com/post/ReactiveCocoaTutorial-part1作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络转载 2016-04-06 10:35:43 · 255 阅读 · 0 评论 -
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 · 261 阅读 · 0 评论 -
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 · 546 阅读 · 0 评论 -
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 · 968 阅读 · 0 评论 -
基于面向协议MVP模式下的软件设计-(iOS篇)
传统模式下的开发MVCMVVM基于面向协议MVP的介绍MVP实战开发说在前面:相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板。随着时间的推移,在iOS平台上MVC也逐渐开始面临着越来越多的问题,最近又开始流行MVVM,MVVM使由MVC衍生而来,MVVM作为一种新的开发模式和响应式编程相结合用来解决一部分业务场景等,今天,本我我要介绍给大家的是一个新转载 2016-09-07 09:44:26 · 650 阅读 · 0 评论 -
设置TableViewCell横线偏移量
#pragma mark - UITableViewDelegate & UITableViewDataSource-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{原创 2016-08-31 14:23:11 · 290 阅读 · 0 评论 -
模型dict打印输出@property
我们在创建模型的时候,常常要写一大堆恶心的@property(nonatomic, copy) NSString *name;垃圾代码,遇到这个就恶心的想吐,给NSObject添加一个分类,当传入一个字典会自动生成打印处理,接下来需要做的就是command + c然后command + v到自己的模型中原创 2016-08-05 17:47:45 · 709 阅读 · 0 评论 -
UINavigationBar属性及返回按钮更改小结
有时候这些属性搞得蛮乱的,记录下以便查阅UINavigationBar属性如果想统一设置,可以通过以下方法,获取当前类下的所有对象的导航条,然后在+initialize方法中进行设置[UINavigationBar appearanceWhenContainedIn:self, nil];背景图片// barMetrics需要设置成UIBar转载 2016-08-01 14:49:55 · 896 阅读 · 0 评论 -
有趣的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 · 400 阅读 · 0 评论 -
BlocksKit源码分析
1引言众所周知Block已被广泛用于iOS编程。它们通常被用作可并发执行的逻辑单元的封装,或者作为事件触发的回调。Block比传统回调函数有2点优势: 1. 允许在调用点上下文书写执行逻辑,不用分离函数 2. Block可以使用local variables.基于以上种种优点Cocoa Touch越发支持Block式编程,这点从UIView的各种动画效果可用Block实现就转载 2016-07-14 15:55:40 · 262 阅读 · 0 评论 -
iOS开发之--- NSURLProtocol
最近在项目里由于电信那边发生dns发生域名劫持,因此需要手动将URL请求的域名重定向到指定的IP地址,但是由于请求可能是通过NSURLConnection,NSURLSession或者AFNetworking等方式,因此要想统一进行处理,一开始是想通过Method Swizzling去hook cfnetworking底层方法,后来发现其实有个更好的方法–NSURLProtocol。NSURLPro转载 2016-05-18 10:34:45 · 350 阅读 · 0 评论 -
Notification Once为AppDelegate瘦身
Notification Once前段时间整理项目中的AppDelegate,发现很多写在- application:didFinishLaunchingWithOptions:中的代码都只是为了在程序启动时获得一次调用机会,多为某些模块的初始化工作,如:- (BOOL)application:(UIApplication *)applicationdidFini转载 2016-04-13 17:40:18 · 709 阅读 · 0 评论 -
通过PDF矢量图片自动生成@1x, @2x, @3x切图
这个的确很烦,因为每个app的每个设计师被问这个问题都至少一年了。貌似苹果每年都会增加一种新的屏幕分辨率,今年我也持怀疑态度。随着硬件技术的发展,苹果总是走在前沿,总是在尽可能地提高屏幕的ppi。很不幸,这意味着我们不能直接在“预览”中放大已有的图片,因为这会造成诸如图片像素化和产生锯齿等问题。通俗点,就是我们的图片变丑了,噁!每次你叫设计师出一张已有图片的3x分辨率图,某个地方就又要死一只独角兽原创 2015-11-05 10:35:34 · 2095 阅读 · 0 评论 -
self 的循环引用
self 的循环引用当使用代码块和异步分发的时候,要注意避免引用循环。 总是使用 weak 来引用对象,避免引用循环。(译者注:这里更为优雅的方式是采用影子变量@weakify/@strongify 这里有更为详细的说明) 此外,把持有 block 的属性设置为 nil (比如 self.completionBlock = nil) 是一个好的实践。它会打破 block 捕获的作用域带翻译 2015-10-21 10:48:42 · 401 阅读 · 2 评论 -
IOS通讯录选取某个号码
#import #import ABPeoplePickerNavigationControllerDelegateABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationControlleralloc] init]; picker.d原创 2015-04-30 15:19:20 · 530 阅读 · 0 评论 -
iphone自定义弹出式菜单(popoverView)
在调用的地方如下代码调用: NSArray *menuList, *imgList; NSMutableArray *menuItems = [[NSMutableArray alloc] init]; menuList = @[@"扫一扫",@"设置",@"分享",@"退出"]; imgList = @[@"扫一扫.原创 2015-04-27 16:00:02 · 1345 阅读 · 0 评论 -
关于手势拖动图标移动图标(附带滑动效果)
- (void)handlePan:(UIPanGestureRecognizer *)recognizer{ CGRect rx = [ UIScreen mainScreen ].bounds; CGPoint translation = [recognizer translationInView:self.view];原创 2015-04-27 12:58:55 · 2041 阅读 · 0 评论 -
iOS UIWebView中javascript与Objective-C交互、获取摄像头
UIWebView是iOS开发中常用的一个视图控件,多数情况下,它被用来显示HTML格式的内容。支持的文档格式除了HTML以外,UIWebView还支持iWork, Office等文档格式:Excel (.xls)Keynote (.key.zip)Numbers (.numbers.zip)Pages (.pages.zip)PDF (.pdf)P转载 2015-04-24 13:21:19 · 685 阅读 · 0 评论 -
iOS开发之Objective-C与JavaScript的交互
UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。stringByEvaluatingJavaScriptFromString 使用stringByEvaluatingJavaScript转载 2015-04-24 12:51:18 · 323 阅读 · 0 评论 -
App适配iPhone 6/ Plus和iOS 8:10条小秘诀
(原文:raywenderlich 作者:Jack Wu 译者:@TurtleFromMars)过节啦!为庆祝佳节,看看我给这篇文章写的这段极客小诗吧:“Keynote前夜,无人知晓,新API能否登场对Siri的期待,Touch ID的希望而此刻iOS 8应声而出,震惊全场扩展,Swift,Metal,整整一箩筐通用Storyboard,又有谁曾料想一片转载 2015-04-23 13:19:52 · 1093 阅读 · 0 评论 -
iOS8新特性 UIPresentationController(一) popover、alert、action sheet与search的新特性
UIPresentationController是提供高级视图切换的类。它让管理present ViewController的过程变得简单。先讲一些presentation基础知识,在iPad的设置页面,可以通过popOver弹出一个UIViewController,这个弹出的,可以和用户交互的Controller叫做PresentedViewController,而后面那个被部分遮挡的U转载 2014-10-21 09:32:39 · 501 阅读 · 0 评论 -
block一点也不神秘————如何利用block进行回调
转自:http://blog.csdn.net/mobanchengshuang/article/details/11751671我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下:1.我现在玩手机2.突然手机没有电了3.我只好让手机开始充电4.充转载 2014-11-27 22:37:29 · 324 阅读 · 0 评论 -
实现通知中心/控制中心等模糊背景的图层
//创建图层 self.layer = [CALayer layer]; self.layer.frame = CGRectMake(0, 0, 320, 320); [self.view.layer addSublayer:self.layer]; //截屏 float scale = [UIScreen mainScreen].scale; UIGraphicsBeg原创 2014-10-28 15:08:26 · 673 阅读 · 0 评论 -
iOS 8 Xcode6 设置Launch Image 启动图片
Step11.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image"2.如图,右侧的勾选可以让你选择是否要对ipad,横屏,竖屏,以及低版本的ios系统做支持.这边我选了ios8.0,ios7.0,ios6没有做支持.Step2将规定尺寸的图片从你的文件中拖动进到固定位置.系统尺寸分辨率转载 2015-06-23 12:32:20 · 554 阅读 · 0 评论 -
AFNetWorking在IOS9 请求数据失败解决方案
公司的项目在iOS8 模拟器和真机上跑起来完全没有问题,但是在iOS 9测试版系统上跑,发现关于网络请求的数据都请求失败,直接进入Error方法内,经过翻墙,爬楼,群聊,才解决,原因是苹果在iOS 9上的安全机制在次升级,在数据请求增加了1层,如下图这样看起来比较直观,这样就好解决问题了,解决方案如下:第一种方案(代码)打开项目目录下的 in转载 2015-07-01 09:16:30 · 1411 阅读 · 0 评论 -
IOS上如何画出1像素的线
#define SINGLE_LINE_WIDTH (1/[UIScreen mainScreen].scale)#define SINGLE_LINE_ADJUST_OFFSET ((1/[UIScreen mainScreen].scale)/2)- (void)viewDidLoad { [superviewDidLoad];原创 2015-07-01 09:17:28 · 1407 阅读 · 2 评论 -
通过UIImageRenderingMode改变工程图片颜色
在两个大版本升级之后,我还能看到这样的代码。在iOS7中,我们有了imageWithRenderingMode,这是UIImage的一个方法,参数是有三个选项的枚举值UIImageRenderingMode。typedef NS_ENUM(NSInteger, UIImageRenderingMode) {UIImageRenderingModeAutomatic,原创 2015-11-05 10:31:09 · 628 阅读 · 0 评论 -
iOS关闭键盘简单实现(objc/swift)
Objective-C 代码实例方式一[[[UIApplication sharedApplication] keyWindow] endEditing:YES];如果一个view上有许多TextField,可以直接 [self.view endEditing:YES];Objective-C 代码实例方式二[[self findFirstResponderBeneathView:self] res原创 2015-08-19 14:29:26 · 1031 阅读 · 0 评论 -
Masonry介绍与使用实践:快速上手Autolayout
前言1MagicNumber -> autoresizingMask -> autolayout以上是纯手写代码所经历的关于页面布局的三个时期在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了在iphone4-iphon转载 2015-07-24 11:16:29 · 397 阅读 · 0 评论 -
浅谈iOS中MVVM的架构设计与团队协作
本文的Demo不错,可以借鉴学习MVVM的思想。转载自互联网一、小酌一下MVVM在这呢也不赘述什么是MVC,神马又是MVVM了,在百度上谷歌一下一抓一大把,在这儿就简单的提上一嘴。下面的Demo用的就是MVVM的架构模式。Model层是少不了的了,我们得有东西充当DTO(数据传输对象),当然,用字典也是可以的,编程么,要灵活一些。Model层是比较薄的一层,如果学过转载 2015-08-31 21:38:44 · 763 阅读 · 0 评论