05 2016 档案

摘要:开发过程中,发现titleview很难居中,通过各种尝试终于找到了解决方法。 首先清楚你个概念: leftBarButtonItem,导航条中左侧button。 rightBarButtonItem,导航条中右侧button。 titleview,不用介绍了吧,就是标题。 问题原因: 经过尝试,发现 阅读全文
posted @ 2016-05-30 09:35 FMDN 阅读(6082) 评论(1) 推荐(0) 编辑
摘要:本文从 setNeedsLayout 这个方法说起,分享与其相关的 UIKit 视图交互、使用场景等内容。 UIKit 为 UIView 提供了这些方法来进行视图的更新与重绘: public func setNeedsLayout() public func layoutSubviews() pub 阅读全文
posted @ 2016-05-30 09:34 FMDN 阅读(455) 评论(0) 推荐(0) 编辑
摘要:众所周知,一款苹果APP进入苹果应用商店后,要上排行榜,要被首页推荐,版本更新必不可少,但作为版本更新的关键所在,软件测试一直被业内吐槽“坑太多”,缺陷防不胜防、相关经验缺乏等等。若问如何“填坑”?以往,这相当于老大难,可现在,有了来自星云测试(www.teststars.cc)的软件测试平台Paw 阅读全文
posted @ 2016-05-30 09:33 FMDN 阅读(485) 评论(0) 推荐(0) 编辑
摘要:前言 因为公司需要开发一个内部使用的字典转模型的项目,所以最近也是在看关于字典转模型的内容。有Mantle,jsonModel,MJExtension等众多框架,最后还是选择了先从YYModel源码读起,发现一边读着读着我的膝盖就掉下去了,于是想总结一下自己在阅读源码的过程中收获的知识点 目录结构 阅读全文
posted @ 2016-05-30 09:30 FMDN 阅读(597) 评论(0) 推荐(0) 编辑
摘要:本篇blog主要讲解如何定制TabBarItem的大小,最终实现AppStore各大主流APP TabBarItem超出TabBar的效果。希望对大家有所帮助。 方案一:UIEdgeInsets 适用场景: 适合APP的TabBarItemImage的图片资源放在本地 图片超出tabbar的高度,需 阅读全文
posted @ 2016-05-30 09:30 FMDN 阅读(317) 评论(0) 推荐(0) 编辑
摘要:填坑 支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base6 阅读全文
posted @ 2016-05-30 09:29 FMDN 阅读(1581) 评论(1) 推荐(0) 编辑
摘要:本文是直播分享的简单文字整理,直播共分为上、下两部分。 第一部分: 优酷 :http://v.youku.com/v_show/id_XMTUzNzQzMDU0NA%3Cmark%3E.html Or YouTube:https://youtu.be/hPR67T9mbsY 第二部分: 优酷:htt 阅读全文
posted @ 2016-05-30 09:28 FMDN 阅读(306) 评论(0) 推荐(0) 编辑
摘要:前言 关于我和WebSocket的缘:我从大二在计算机网络课上听老师讲过之后,第一次使用就到了毕业之后的第一份工作。直到最近换了工作,到了一家是含有IM社交聊天功能的app的时候,我觉得我现在可以谈谈我对WebSocket/Socket的一些看法了。要想做IM聊天app,就不得不理解WebSocke 阅读全文
posted @ 2016-05-30 09:27 FMDN 阅读(376) 评论(0) 推荐(0) 编辑
摘要:一、变量声明 为便于下文讨论,提前创建父类Biology以及子类Person: Biology: @interface Biology : NSObject { NSInteger *_hairCountInBiology; } @property (nonatomic, copy) NSStrin 阅读全文
posted @ 2016-05-30 09:26 FMDN 阅读(227) 评论(0) 推荐(0) 编辑
摘要:HTTP属于老话题了,在项目中我们经常需要往服务端发POST或者GET请求,但是对于HTTP的了解不应只局限于此。千里之行,始于足下。越想走的远,基本原理就应该了解的透彻全面一些,仅仅停留在使用ASIHttpRequest或者AFNetWorking传个参数发个请求的程度上是不够的。这篇文章就是带你 阅读全文
posted @ 2016-05-30 09:25 FMDN 阅读(264) 评论(0) 推荐(0) 编辑
摘要:验证码倒计时按钮的应用是非常普遍的,本文介绍了IOS实现验证码倒计时功能,点击获取验证码,进入时间倒计时,感兴趣的小伙伴们可以参考一下: 实现思路: 创建按钮,添加点击方法; 用NSTimer定时器,每秒执行一次,定时改变Button的title,改变Button的样式,设置Button不可点击; 阅读全文
posted @ 2016-05-30 09:24 FMDN 阅读(264) 评论(0) 推荐(0) 编辑
摘要:text.adjustsFontSizeToFitWidth = YES; text.minimumFontSize = 14; 阅读全文
posted @ 2016-05-30 09:23 FMDN 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1 // ------获取父视图上面所有的子视图 2 NSArray *array = [self.view subviews]; 3 for (UIView *view in array) { 4 if ([view isKindOfClass:[UILabel class]]) { 5 [view rem... 阅读全文
posted @ 2016-05-30 09:23 FMDN 阅读(188) 评论(0) 推荐(0) 编辑
摘要:1 UIButton *clearButton = [self.textField valueForKey:@"_clearButton"]; 2 [clearButton setImage:[UIImage imageNamed:@"图片"] forState:UIControlStateNormal]; 阅读全文
posted @ 2016-05-30 09:22 FMDN 阅读(971) 评论(0) 推荐(0) 编辑
摘要:在上一个界面添加如下代码,下一个界面的返回按钮就会改变: //------UIBarButtonItem *backItem = [[UIBarButtonItem alloc]initWithTitle:@"自定义" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarBut... 阅读全文
posted @ 2016-05-30 09:22 FMDN 阅读(351) 评论(0) 推荐(0) 编辑
摘要:四年前Clang添加了关键字instancetype,目的在于取代-alloc和-init等方法的返回类型id,那么使用instancetype到底比id好在哪里? instancetype宣言 不管何时,只要一个class要返回它相同的类实例,使用instancetype都是更加合适的。 我们知道 阅读全文
posted @ 2016-05-30 09:21 FMDN 阅读(307) 评论(0) 推荐(0) 编辑
摘要:dispatch_once dispatch_once可以保证一段代码只被执行一次,因此出现之后使用最多的场景就是实现单例。本文来模拟实现dispatch_once的功能。 模拟dispatch_once 直接上代码 1 static NSMutableDictionary 2 *lockMappi 阅读全文
posted @ 2016-05-30 09:20 FMDN 阅读(250) 评论(0) 推荐(0) 编辑
摘要:报错一: 在iOS7的真机运行时,弹出错误:App installation failed. There was an internal API error. 如图 解决办法: 在Xcode -> Target -> Build Setting 下的Packaging部分,将Product Name 阅读全文
posted @ 2016-05-30 09:19 FMDN 阅读(431) 评论(0) 推荐(0) 编辑
摘要:1、申明后台模式播放 阅读全文
posted @ 2016-05-25 17:39 FMDN 阅读(502) 评论(0) 推荐(0) 编辑
摘要:#import #import @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UILabel *infoLabel; @property (weak, nonatomic) IBOutlet UISlider *volumeSlider; @property (weak... 阅读全文
posted @ 2016-05-25 13:28 FMDN 阅读(246) 评论(0) 推荐(0) 编辑
摘要:IPv6的简介 IPv4 和 IPv6的区别就是 IP 地址前者是 .(dot)分割,后者是以 :(冒号)分割的(更多详细信息自行搜索)。 PS:在使用 IPv6 的热点时候,记得手机开 飞行模式 哦,保证手机只在 Wi-Fi 下上网,以免手机在连接不到网络时候,会默认跳转到使用 蜂窝移动网络(即2 阅读全文
posted @ 2016-05-25 11:56 FMDN 阅读(18886) 评论(3) 推荐(0) 编辑
摘要:#import #import @interface ViewController : UIViewController { BOOL _newRecordingAvailable; } @property (weak, nonatomic) IBOutlet UILabel *averageLabel; @property (weak, nonatomic) IBOutlet... 阅读全文
posted @ 2016-05-25 10:47 FMDN 阅读(279) 评论(0) 推荐(0) 编辑
摘要:#import #import #import @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UILabel *averageLabel; @property (weak, nonatomic) IBOutlet UILabel *peakLabel; @proper... 阅读全文
posted @ 2016-05-25 10:39 FMDN 阅读(327) 评论(0) 推荐(0) 编辑
摘要:一、引言 前面的博客介绍了UICollectionView的相关方法和其协议中的方法,但对布局的管理类UICollectionViewFlowLayout没有着重探讨,这篇博客介绍关于布局的相关设置和属性方法。 UICollectionView的简单使用:http://my.oschina.net/ 阅读全文
posted @ 2016-05-25 10:05 FMDN 阅读(6564) 评论(0) 推荐(0) 编辑
摘要:通常视频应用程序使用一个缩略图来表示给定的视频,使用CoreMedia框架生成缩略图。 阅读全文
posted @ 2016-05-25 09:47 FMDN 阅读(635) 评论(0) 推荐(0) 编辑
摘要:#import #import #import @interface ViewController : UIViewController @property (strong, nonatomic) AVCaptureSession *captureSession; @property (strong, nonatomic) AVCaptureDeviceInput *videoInpu... 阅读全文
posted @ 2016-05-25 09:32 FMDN 阅读(1475) 评论(0) 推荐(0) 编辑
摘要:iOS 的 UIScrollView 可以说是十分强大,巧妙地运用它可以得到一些意想不到的效果。本文将举几个 ScrollView 不常见运用的例子。 自带信息应用 这个界面既可以上下卷动,也可以左右滑动拉出发送时间。 P.S. 气死宝宝了,我做了一组精美的 gif,但是大小都超出简书限制…..无语 阅读全文
posted @ 2016-05-25 09:24 FMDN 阅读(2337) 评论(1) 推荐(0) 编辑
摘要:首先 关于网络层最先可能想到的是AFNetworking,或者Swift中的Alamofire,直接使用起来也特别的简单,但是稍复杂的项目如果直接使用就显得不够用了,首先第三方耦合不说,就光散落在各处的请求回调就难以后期维护,所以一般会有针对性的再次封装,往往初期可能业务相对简单,考虑的方面较少,后 阅读全文
posted @ 2016-05-25 09:23 FMDN 阅读(483) 评论(0) 推荐(0) 编辑
摘要:在编程过程中,我们会用到很多各种各样的他人封装的第三方代码,但是有很多第三方都是在非ARC情况下运行的,当你使用第三方编译时出现和下图类似的错误,就说明该第三方是非ARC的,需要进行一些配置。 解决方法: 苹果文档Transitioning to ARC Release Notes有一种解决办法为: 阅读全文
posted @ 2016-05-25 09:22 FMDN 阅读(302) 评论(0) 推荐(0) 编辑
摘要:xcode7更新之后使用真机调试,在IOS8的一台iphone6也没问题。IOS9.2的一台iphone6s也没问题。但是在IOS7.0的一台iPhone4s上面在最后安装的时候居然安装失败,提示 There was an internal API error 通过N多次百度之后,收集了一些方法,整 阅读全文
posted @ 2016-05-25 09:21 FMDN 阅读(288) 评论(0) 推荐(0) 编辑
摘要:一,效果图。 二,代码。 1 RootViewController.m 2 3 4 5 - (void)viewDidLoad 6 7 { 8 9 [super viewDidLoad]; 10 11 // Do any additional setup after loading the view 阅读全文
posted @ 2016-05-25 09:20 FMDN 阅读(473) 评论(0) 推荐(0) 编辑
摘要:在 《iOS面试题集锦(附答案)》 中有这样一道题目: 在block内如何修改block外部变量?(38题)答案如下: 默认情况下,在block中访问的外部变量是复制过去的,即:写操作不对原变量生效。但是你可以加上 __block 来让其写操作生效,示例代码如下: __block int a = 0 阅读全文
posted @ 2016-05-24 18:04 FMDN 阅读(3677) 评论(0) 推荐(0) 编辑
摘要:#import #import #import @interface ViewController : UIViewController @property (strong, nonatomic) AVCaptureSession *captureSession; @property (strong, nonatomic) AVCaptureDeviceInput *videoInpu... 阅读全文
posted @ 2016-05-24 14:04 FMDN 阅读(1420) 评论(0) 推荐(0) 编辑
摘要:#import #import @interface ViewController : UIViewController @property (nonatomic,strong) AVCaptureSession * captureSession; @property (nonatomic,strong) AVCaptureDeviceInput * videoInput; @end ... 阅读全文
posted @ 2016-05-24 13:32 FMDN 阅读(815) 评论(0) 推荐(0) 编辑
摘要:- (IBAction)takePicture:(id)sender { // Make sure camera is available if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO) { ... 阅读全文
posted @ 2016-05-24 09:47 FMDN 阅读(422) 评论(0) 推荐(0) 编辑
摘要:#import <MobileCoreServices/MobileCoreServices.h> <UIVideoEditorControllerDelegate>//编辑视频 @property (strong, nonatomic) NSString *pathToRecordedVideo; 阅读全文
posted @ 2016-05-23 17:52 FMDN 阅读(200) 评论(0) 推荐(0) 编辑
摘要:<UIImagePickerControllerDelegate> 阅读全文
posted @ 2016-05-23 17:01 FMDN 阅读(147) 评论(0) 推荐(0) 编辑
摘要:概念 对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接拷贝整个对象内存到另一块内存中。 一图以蔽之 再简单些说:浅复制就是指针拷贝;深复制就是内容拷贝。 集合的浅复制 (shallow copy) 集合的浅复制有非常多种方法。当你进行浅复 阅读全文
posted @ 2016-05-23 15:26 FMDN 阅读(267) 评论(0) 推荐(0) 编辑
摘要:这篇文章是笔者在开发App过程中发现的一些内存问题, 然后学习了YYKit框架时候也发现了图片的缓存处理 (YYKit 作者联系了我, 说明了YYKit重写imageNamed:的目的不是为了内存管理, 而是增加兼容性, 同时也是为了YYKit中的动画服务). 以下内容是笔者在开发中做了一些实验以及 阅读全文
posted @ 2016-05-23 15:24 FMDN 阅读(196) 评论(0) 推荐(0) 编辑
摘要:在WWDC2015上苹果宣布iOS9将支持纯IPv6的网络服务。2016年初开始所有提交到App Store的应用必须支持IPv6。为确保现有的应用是兼容的,我们需要注意下面几点。 不建议使用底层的网络API 下图展示的蓝色部分的这些API都是不存在兼容性问题的,而我们平时自己用的包括那些第三方的网 阅读全文
posted @ 2016-05-23 09:46 FMDN 阅读(246) 评论(0) 推荐(0) 编辑
摘要:很多时候哥比较喜欢用代码添加视图,特别是要同时加很多UIView时,而且跟 xib 比起来代码更容易管理,在多人的项目中代码不容易 conflict。 但小牛哥最近发现很多新人都不太清楚正确的使用方法,以下是哥的一些总结,有何不妥欢迎大家一起讨论: (前提条件是这样的:有一个 View Contro 阅读全文
posted @ 2016-05-23 09:46 FMDN 阅读(808) 评论(0) 推荐(0) 编辑
摘要:前言: 在ios开发中经常遇到两个词Frame和bounds,本文主要阐述Frame和bound的区别,尤其是bound很绕,较难理解。 一、首先,看一下公认的资料: 先看到下面的代码你肯定就明白了一些: 很明显,bounds的原点是(0,0)点(就是view本身的坐标系统,默认永远都是0,0点,除 阅读全文
posted @ 2016-05-23 09:44 FMDN 阅读(447) 评论(0) 推荐(0) 编辑
摘要:随着每一代 iPhone 处理能力和相机硬件配置的提高,使用它来捕获视频也变得更加有意思。它们小巧,轻便,低调,而且与专业摄像机之间的差距已经变得非常小,小到在某些情况下,iPhone 可以真正替代它们。 这篇文章讨论了关于如何配置视频捕获管线 (pipeline) 和最大限度地利用硬件性能的一些不 阅读全文
posted @ 2016-05-23 09:23 FMDN 阅读(1696) 评论(0) 推荐(0) 编辑
摘要:1.背景 前段时间由于项目需求,做了一个基于GPUImage的实时美颜滤镜。现在各种各样的直播、视频App层出不穷,美颜滤镜的需求也越来越多。为了回馈开源,现在我把它放到了GitHub https://github.com/Guikunzhi/BeautifyFaceDemo 上面,感兴趣的朋友可以 阅读全文
posted @ 2016-05-23 09:22 FMDN 阅读(5180) 评论(1) 推荐(0) 编辑
摘要:预备知识 : 内存的栈区 : 由编译器自动分配释放, 存放函数的参数值, 局部变量的值等. 其 操作方式类似于数据结构中的栈. 内存的堆区 : 一般由程序员分配释放, 若程序员不释放, 程序结束时可能由OS回 收. 注意它与数据结构中的堆是两回事, 分配方式倒是类似于链表. copy方法和mutab 阅读全文
posted @ 2016-05-23 09:20 FMDN 阅读(247) 评论(0) 推荐(0) 编辑
摘要:Google 在2013年5月的I/O开发者大会推出了基于IntelliJ IDEA java ide上的Android Studio。AndroidStudio是一个功能齐全的开发工具,还提供了第三方插件的支持。让开发人员更快速更好的开发程序。 插件的安装 in Android Studio: g 阅读全文
posted @ 2016-05-23 09:13 FMDN 阅读(12376) 评论(1) 推荐(1) 编辑
摘要:前言 最近在研究页面渲染及web动画的性能问题,以及拜读《CSS SECRET》(CSS揭秘)这本大作。本文主要想谈谈页面优化之滚动优化。 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的关系,节流与防抖,pointer-events:none 优化滚动。因为本文涉及了很多很多基础,是我自己学习 阅读全文
posted @ 2016-05-23 09:11 FMDN 阅读(727) 评论(0) 推荐(0) 编辑
摘要:一,效果图。 二,代码。 RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"I love yo 阅读全文
posted @ 2016-05-23 09:10 FMDN 阅读(587) 评论(0) 推荐(0) 编辑
摘要:本文介绍RSA加解密中必须考虑到的密钥长度、明文长度和密文长度问题,对第一次接触RSA的开发人员来说,RSA算是比较复杂的算法,RSA的复杂度是因为数学家把效率和安全也考虑进去的缘故。 本文先只谈密钥长度、明文长度和密文长度的概念知识,RSA的理论及示例等以后再谈。提到密钥,我们不得不提到RSA的三 阅读全文
posted @ 2016-05-23 09:09 FMDN 阅读(736) 评论(0) 推荐(0) 编辑
摘要:键盘遮盖输入控件或按钮在日常app开发中避之不及,考虑各种情况下UI各种嵌套,最后还要注册监听再获取指定键盘信息。我们可以通过键盘处理工具类ZYKeyboardUtil避繁就简,利用Block的方式处理键盘遮盖问题。 Demo地址: https://github.com/liuzhiyi1992/Z 阅读全文
posted @ 2016-05-23 09:08 FMDN 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1.首先要下载openssl。这个不用说,直接官网下载或者用brew install openssl下载。 2.终端生成私钥密钥。 2.1生成私钥 2.2生成密钥 2.3将RSA私钥转换为pkcs8 格式 私钥及密钥地址在根目录文件 rsa_private_key.pem rsa_public_ke 阅读全文
posted @ 2016-05-23 09:00 FMDN 阅读(1345) 评论(0) 推荐(0) 编辑
摘要:前言 UIScrollView可以说是我们在日常编程中使用频率最多、扩展性最好的一个类,根据不同的需求和设计,我们都能玩出花来,当然有一些需求是大部分应用通用的,今天就聊一下以下需求,在一个category中统统搞定: 1下拉刷新:支持下拉过程中GIF逐帧,loading时可自定义帧率 2上拉更多: 阅读全文
posted @ 2016-05-23 08:58 FMDN 阅读(252) 评论(0) 推荐(0) 编辑
摘要:1、UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性。 iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。 UIPanGestureRecogni 阅读全文
posted @ 2016-05-23 08:57 FMDN 阅读(403) 评论(0) 推荐(0) 编辑
摘要:AITableView https://github.com/chentoo/AITableView cocoapods: pod ‘AITableView’ 做什么用? 这是一个简化UITableView使用方式的一个尝试,不需要再实现UI TableView繁多的delegate和datasou 阅读全文
posted @ 2016-05-19 10:24 FMDN 阅读(526) 评论(0) 推荐(0) 编辑
摘要:一、大神博客研读 随着应用需求逐步迭代,应用的代码体积将会越来越大,为了更好的管理应用工程,我们开始借助CocoaPods版本管理工具对原有应用工程进行拆分。但是仅仅完成代码拆分还不足以解决业务之间的代码耦合,为了更好的让拆分出去的业务工程能够独立运行,必须进行组件拆分并且实现组件服务化。 下面是最 阅读全文
posted @ 2016-05-19 10:23 FMDN 阅读(2987) 评论(0) 推荐(0) 编辑
摘要:其实本文想说的是:当面试一个架构师的时候,我们应该问什么问题?我觉得,问什么样的问题,体现了team leader更加看重架构师的哪些特点。 我一直认为,做技术就跟练武一样,在练武的不同阶段,分招式和心法。技术也一样,在不同的阶段,也分招式和心法。另外,就我个人而言,经常忘记招式,一方面可以说十二年 阅读全文
posted @ 2016-05-19 10:19 FMDN 阅读(495) 评论(0) 推荐(0) 编辑
摘要:简述 前几天的一个晚上在infoQ的微信群里,来自蘑菇街的Limboy做了一个分享,讲了蘑菇街的组件化之路。我不认为这条组件化之路蘑菇街走对了。分享后我私聊了Limboy,Limboy似乎也明白了问题所在,我答应他我会把我的方案写成文章,于是这篇文章就出来了。 另外,按道理说组件化方案也属于iOS应 阅读全文
posted @ 2016-05-19 10:18 FMDN 阅读(434) 评论(0) 推荐(0) 编辑
摘要:前言 嗯,你们要的大招。跟着这篇文章一起也发布了CTPersistance和CTJSBridge这两个库,希望大家在实际使用的时候如果遇到问题,就给我提issue或者PR或者评论区。每一个issue和PR以及评论我都会回复的。 持久化方案不管是服务端还是客户端,都是一个非常值得讨论的话题。尤其是在服 阅读全文
posted @ 2016-05-19 10:16 FMDN 阅读(197) 评论(0) 推荐(0) 编辑
摘要:前言 网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大。另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用。其它的ASIHttpRequest,MKNetworkKit啥的其实也都还不错,但前者已经弃坑,后者也在弃坑的边缘。在实际 阅读全文
posted @ 2016-05-19 10:15 FMDN 阅读(175) 评论(0) 推荐(0) 编辑
摘要:前言 《iOS应用架构谈 开篇》出来之后,很多人来催我赶紧出第二篇。这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分。 现在好啦,第二篇出来了。 当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了, 阅读全文
posted @ 2016-05-19 10:14 FMDN 阅读(339) 评论(0) 推荐(0) 编辑
摘要:缘由 之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你会从哪些方面来说呢? 当时看到这个问题正好在乘公车回家的路上,闲来无聊就答了一把。在zzz在微信朋友圈 阅读全文
posted @ 2016-05-19 10:12 FMDN 阅读(142) 评论(0) 推荐(0) 编辑
摘要:最近进行跳转界面隐藏tabbar的时候遇到了一些坑,现在把它记录下来,如果有需要的朋友可以参考一下. 大家一般使用tabbar的时候,隐藏有两种方法. 一种是设置当前所处界面的隐藏属性 self.tabBarController.tabBar.hidden = YES; 这一种是在当前界面中设置ta 阅读全文
posted @ 2016-05-19 10:07 FMDN 阅读(254) 评论(0) 推荐(0) 编辑
摘要:前一段时间在进行App升级的时候,由于一开始版本初期没有考虑完善,导致走了很多弯路,后来经过自己的一些思考,总结出了一些在app升级的时候,数据库内文件同步保持更新的经验,希望能给大家带来帮助. 总体方案及思路 流程图 流程图 在每一次运行程序的时候,判断是否存在数据库,如果不存在则直接创建数据库, 阅读全文
posted @ 2016-05-19 10:06 FMDN 阅读(520) 评论(0) 推荐(0) 编辑
摘要:1. 限制HTTP协议,全部改用更安全的HTTPS iOS9让所有的HTTP默认使用了HTTPS,原来的HTTP协议传输都改成TLS1.2协议进行传输。直接造成的情况就是App发请求的时候弹出网络无法连接。对于这个问题的解决方案,网上有一篇博客已经总结的很好了,我在这就简要的说明怎么处理这种问题. 阅读全文
posted @ 2016-05-19 10:03 FMDN 阅读(247) 评论(0) 推荐(0) 编辑
摘要:AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持。如果项目以前使用过这些API,那么我们需要升级到基于 NSURLSession 的API的AFNetworking的版本。 首先我们先不用管新版本到底改动了什么,我们先大概的了解一番AFNetwork 阅读全文
posted @ 2016-05-19 10:00 FMDN 阅读(326) 评论(0) 推荐(0) 编辑
摘要:概述 对于开发人员来说,学习网络层知识是必备的,任何一款App的开发,都需要到网络请求接口。很多朋友都还在使用原生的NSURLConnection一行一行地写,代码到处是,这样维护起来更困难了。 对于使用AFNetworking的朋友来说,很多朋友都是直接调用AFNetworking的API,这样不 阅读全文
posted @ 2016-05-19 09:58 FMDN 阅读(330) 评论(0) 推荐(0) 编辑
摘要:这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。 SDWebImage 加载图片的流程 SDWebImage库的作用 通过对UIImageView的类别扩展来实现异步加载替换图片的工作。 主要用到的对象:1、UII 阅读全文
posted @ 2016-05-19 09:44 FMDN 阅读(172) 评论(0) 推荐(0) 编辑
摘要:下载 下载的话,我查阅了很多人写的,像SDWebImage,使用的是NSURLConnection,但是我这里准备使用NSURLsession,使用NSURLSessionDataDelegate的代理方法实现下载数据. 说点题外话:我为什么选择NSURLsession二部选择NSURLConnec 阅读全文
posted @ 2016-05-19 09:33 FMDN 阅读(674) 评论(0) 推荐(0) 编辑
摘要:2、访问设备的Motion数据 阅读全文
posted @ 2016-05-18 16:44 FMDN 阅读(370) 评论(0) 推荐(0) 编辑
摘要:1、子类化窗口 如果响应链中没有motionEnded:withEvent:消息的接收者,那么该消息就会被发送给应用程序的window对象。所以需要在window对象上拦截motionEnded:withEvent:,并实现自己的通知模式。 2、实现摇晃通知 阅读全文
posted @ 2016-05-18 16:14 FMDN 阅读(280) 评论(0) 推荐(0) 编辑
摘要:反向地理编码: 地理编码: 实践需要注意: 1、一次只发送一个地理信息编码请求 2、如果用户执行的动作导致对相同的位置进行地理信息编码,那么应该重用结果而不是多次请求相同的位置 3、一分钟内不应该发送一个以上的地理信息编码请求。你应该检查用户在调用另一次地理信息编码请求前位置是否发生了显著移动。 4 阅读全文
posted @ 2016-05-18 15:41 FMDN 阅读(1259) 评论(0) 推荐(0) 编辑
摘要:什么是const ? 什么是#define? 他们有什么用? 他们有什么区别? 应该怎么用? 总结 1. 什么是const ? const是C/C++中的一个关键字(修饰符), const一般用来定义一个常量, 既然叫做常量, 即以后再也不能修改其值. const定义常量 2. 什么是#define 阅读全文
posted @ 2016-05-18 09:31 FMDN 阅读(1889) 评论(0) 推荐(0) 编辑
摘要:第一步,导入文件 //ASI进行GET数据请求 需要导入的头文件是 ASIHTTPRequest.h //ASI进行POST数据请求 需要导入的头文件是 ASIFormDataRequest.h //都要遵守的协议是 ASIHTTPRequestDelegate 第二步,请求 将字符串转成NSURL NSURL * url = [NSURL URLWithString:P... 阅读全文
posted @ 2016-05-18 09:30 FMDN 阅读(294) 评论(0) 推荐(0) 编辑
摘要:UIWebView * webView = [[UIWebView alloc] initWithFrame: CGRectMake(0, 0, KScreenWidth, KScreenHeight-64)]; webView.backgroundColor = YYCToothWashViewBgColor; [self.view addSubview:webView]; //加载... 阅读全文
posted @ 2016-05-18 09:23 FMDN 阅读(296) 评论(0) 推荐(0) 编辑
摘要:1、作为局部变量 returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...}; 2、作为类的属性 @property (nonatomic, copy, nullability) returnType (^blockName)(parameterTypes) 3、方法参数 - (void)someMet... 阅读全文
posted @ 2016-05-18 09:16 FMDN 阅读(1289) 评论(0) 推荐(0) 编辑
摘要:-(NSMutableArray *)banners { if (_banners ==nil) { self.banners = [NSMutableArray array]; } return _banners; } if (_shops==nil) { self.shops = [NSMutableArray array];... 阅读全文
posted @ 2016-05-17 13:27 FMDN 阅读(213) 评论(0) 推荐(0) 编辑
摘要:/* 建议先看堆调整方法,堆调整了解了,整个排序算法就算掌握了 */ - (void)viewDidLoad { [super viewDidLoad]; /* 测试数据 */ NSArray *array=@[@3,@2,@6,@4,@1,@0,@6,@7,@5]; NSMutableArray 阅读全文
posted @ 2016-05-17 09:49 FMDN 阅读(288) 评论(0) 推荐(0) 编辑
摘要:概念:定义了一个接口,其他类负责来实现这些接口。如果你的类实现了一个协议的方法时,则说该类遵循此协议。 非正式协议:非正式协议虽名为协议,但实际上是挂于NSObject上的未实现分类(Unimplemented Category)的一种称谓。 协议的格式: @protocol 协议名 <父协议>定义 阅读全文
posted @ 2016-05-17 09:49 FMDN 阅读(203) 评论(0) 推荐(0) 编辑
摘要:用户不喜欢等待。他们不关心也不应该关心一个应用初始化的时候需要什么,他们只想尽快地完成他们的任务。你的应用应该几乎是瞬间启动的,其界面应当如丝般顺滑。在充满竞争的软件市场中,应用的性能是关键的优势之一。 作为开发者,我们也希望对我们辛苦开发的 app 感到自豪。 然而,性能优化是一个棘手的问题。大多 阅读全文
posted @ 2016-05-17 09:48 FMDN 阅读(1051) 评论(0) 推荐(0) 编辑
摘要:这是个精心编排的列表,它包含了优秀的 iOS 框架、库、教程、XCode 插件、组件等等。 这个列表分为以下几个部分:框架( Frameworks )、组件( Components )、测试( Testing )和其他的开源项目,免费的和付费的服务。每个部分中的项目没有先后顺序,均是按照提交的先后顺 阅读全文
posted @ 2016-05-17 09:46 FMDN 阅读(1318) 评论(0) 推荐(0) 编辑
摘要:前言 使用RAC的时候我们常会看到这两个宏@weakify(self)、@strongify(self),用来防止使用block时出现引用闭环。 今天看YYKit的时候,看到里面也写了类似的宏,还是来谈谈这两个宏是怎么实现的吧。 正文 ## 宏定义代码 由于YYKit中的weakify、strong 阅读全文
posted @ 2016-05-16 09:56 FMDN 阅读(1097) 评论(0) 推荐(0) 编辑
摘要:写在前面 工欲善其事,必先利其器,iOS开发中不仅要学会Xcode的基本操作,而且还得学会一些Xcode的使用技巧,如掌握常用的快捷键等,还有就是今天要说到的Xcode插件,下面我就为大家介绍几款开发中比较常用的Xcode插件(此处应有掌声)。 插件推荐 1. AMAppExportToIPA 简介 阅读全文
posted @ 2016-05-16 09:55 FMDN 阅读(320) 评论(0) 推荐(0) 编辑
摘要:KVC, KVO 作为一种魔法贯穿日常Cocoa开发,笔者原先是准备写一篇对其的全面总结,可网络上对其的表面介绍已经够多了,除去基本层面的使用,笔者跟大家谈下平常在网络上没有提及的KVC, KVO进阶知识。旨在分享交流。 KVC的消息传递 valueForKey:的使用并不仅仅用来取值那么简单,还有 阅读全文
posted @ 2016-05-16 09:54 FMDN 阅读(279) 评论(0) 推荐(0) 编辑
摘要:一:什么是TableView的优化以及为什么要优化 1)CPU(中央处理器)和GPU(图形处理器):CPU主要从事逻辑计算的一些工作;GPU主要从事图形处理方面的工作。 2)CPU和GPU的共同点: 都有自己的缓存体系,都有自己的数字和逻辑运算单元,都为了完成计算任务而设计。 3)CPU和GPU的不 阅读全文
posted @ 2016-05-16 09:52 FMDN 阅读(540) 评论(0) 推荐(0) 编辑
摘要:今天准备了解下MVVM设计模式,于是就从GitHub上Down了一个MVVM的demo(地址在这)学习,下载之后,在模拟器上运行一下,出现如下图上下有黑边,以前也遇到过这个问题,但当时没有记录,现在还得再次googl,这次记录再次以备下次查询。 解决过程 1、新建一个Launch Screen文件 阅读全文
posted @ 2016-05-16 09:46 FMDN 阅读(415) 评论(0) 推荐(0) 编辑
摘要:在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有。 1、先看看setValue:forKey:的定义 @interface NSMutableDictionary(NSK 阅读全文
posted @ 2016-05-13 11:29 FMDN 阅读(242) 评论(0) 推荐(0) 编辑
摘要:如果要在xib和storyboard里为控件添加圆角和外框宽度,只要这样做就可以: layer.borderWidth 设置外框宽度属性 layer.cornerRadius 设置圆角属性 只要为属性设置value值就可以了。 当然修改完xib里看是看不出来的,要运行才看得到,效果如下: 那如果要在 阅读全文
posted @ 2016-05-13 11:28 FMDN 阅读(501) 评论(0) 推荐(0) 编辑
摘要:前言 前些天帮公司做了网络层的重构,当时就想做好了就分享给大家,后来接着做了新版本的需求,现在才有时间整理一下。 之前的网络层使用的是直接拖拽导入项目的方式导入了AF,然后还修改了大量的源码,时隔2年,AF已经更新换代很多次了,导致整个重构迁移非常的麻烦。不过看着前辈写的代码,肯定也是一个高人,许多 阅读全文
posted @ 2016-05-13 11:27 FMDN 阅读(454) 评论(0) 推荐(0) 编辑
摘要:在ios平台上做网络开发最常用的两个类: NSMutableURLRequest *urlRequest = [[NSMutableURLRequestalloc] initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicytimeo 阅读全文
posted @ 2016-05-12 14:17 FMDN 阅读(306) 评论(0) 推荐(0) 编辑
摘要:介绍下 公司的接口一般会两种协议的,一种HTTP,一种HTTPS的,HTTP 只要请求,服务器就会响应,如果我们不对请求和响应做出加密处理,所有信息都是会被检测劫持到的,是很不安全的,客户端加密可以使用我这套工具类进行处理: 文章地址:http://www.jianshu.com/p/86f9a1e 阅读全文
posted @ 2016-05-12 09:30 FMDN 阅读(243) 评论(0) 推荐(0) 编辑
摘要:前言: 一个iOS头条APP,使用MVVM架构实现,代码中有注释,封装了AFN网络请求,解媾代码,使用起来非常方便。用最经典的TableView展示,后续不断更新,喜欢就star或fork一下,有问题或者建议意见就issues! 本例基于AFN封装了网络请求系列库,以满足自己需求,后期易于扩展;使用 阅读全文
posted @ 2016-05-12 09:29 FMDN 阅读(321) 评论(0) 推荐(0) 编辑
摘要:tbd 是 text-based stub libraries的意思, 是苹果在Xcode7中使用的一个技术,便于减少Xcode7中SDK的体积。 下面讲解下Xcode7如何通过tbd这个技术减少SDK的大小的。 Xcode7中和各个平台相关的sdk都在/Applications/Xcode.app 阅读全文
posted @ 2016-05-12 09:28 FMDN 阅读(904) 评论(0) 推荐(1) 编辑
摘要:VoiceOver是苹果“读屏”技术的名称,属于辅助功能的一部分。VoiceOver可以读出屏幕上的信息,以帮助盲人进行人机交互。 这项技术在苹果的各个系统中都可以看到,OS X,iOS,watchOS,甚至tvOS。 苹果公司的VoiceOver在2015年6月18日获得了美国盲人基金会(Amer 阅读全文
posted @ 2016-05-12 09:27 FMDN 阅读(487) 评论(0) 推荐(0) 编辑
摘要:往往字符串需要计算size来满足UI排版的自适应的需要,而一般字符串也是放在UILabel里的。 而在计算size的方法里,一般有两种方式(deprecated的就不说了)。 NSString的方法 boundingRectWithSize:optoins:attributes:context: 和 阅读全文
posted @ 2016-05-12 09:26 FMDN 阅读(503) 评论(0) 推荐(0) 编辑
摘要:一、App Transport Security xcode7安装后,你会发现ios9之后后默认所有http请求都无法继续有效,但是基于现状,我们并不能这么快改成https请求,所以基本上大多数app都会选择兼容老模式。 如果服务不改变,则客户端info.plist的根需加下面的键值。(这些key可 阅读全文
posted @ 2016-05-12 09:26 FMDN 阅读(206) 评论(0) 推荐(0) 编辑
摘要:众所周知,iOS 9.0之后苹果引入ATS限制,苹果也推荐尽量不要使用HTTP通讯了,毕竟是很不安全的。而国内各个有(wu)节操的运营商也会经常篡改请求HTTP请求。所以如果可能,在不影响性能的情况下,使用https总是更好一点。但是移动网络下HTTPS的握手耗时,也总是很让人难已接受。那么考虑整合 阅读全文
posted @ 2016-05-12 09:23 FMDN 阅读(1886) 评论(0) 推荐(0) 编辑
摘要:Atom 编辑器的一个插件,可以让你写代码的时候体验狂拽酷炫的效果! 如果来点音乐、再配上机械键盘的话,写代码是不是爽到爆呢? 这货全名叫: activate-power-mode atom package 最新版 0.4.1,喜欢就去下载吧: https://github.com/JoelBesa 阅读全文
posted @ 2016-05-12 09:20 FMDN 阅读(292) 评论(0) 推荐(0) 编辑
摘要:前言 前一段时间一直在学习iOS的架构。为什么呢? 公司的架构一直是MVC,当我们正式上线的时候,项目已经有了超十万行代码。主要的VC一般都有2000行代码以上。 关键是,目前版本我们只做了三分之一的业务逻辑… 所以,架构重构吧。 正文 MVVM MVVM其实是MVC的进化版,它将业务逻辑从VC中解 阅读全文
posted @ 2016-05-12 09:14 FMDN 阅读(720) 评论(0) 推荐(0) 编辑
摘要:insert(默认编辑样式都是UITableviewCellEditingStyleDelete),所以添加insert样式。 重新排序 阅读全文
posted @ 2016-05-11 17:20 FMDN 阅读(434) 评论(0) 推荐(0) 编辑
摘要:设置imageView大小 阅读全文
posted @ 2016-05-11 16:53 FMDN 阅读(339) 评论(0) 推荐(0) 编辑
摘要:一、什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使的当前NSRunLoop的线程工作,没有事情做让当前NSRunLoop的线程休眠 NSTimer默认添加到当前NSRunLoop中,也可以手动制定添加到自己新建的NSRunLoop NS 阅读全文
posted @ 2016-05-10 17:05 FMDN 阅读(329) 评论(0) 推荐(0) 编辑
摘要:虽然iOS系统相比于其他手机操作系统相对安全,但是这个安全并不是绝对的,我一直相信,道高一尺魔高一丈。此文想以实际例子出发,告诉大家,如何去反编译一个app,并且从某个角度来说,iOS没有传说中的“安全”。 这里只最简单的结论给大家,具体原理以及工具的详细使用,请各位自行Google,为什么这么做呢 阅读全文
posted @ 2016-05-10 17:03 FMDN 阅读(6322) 评论(0) 推荐(0) 编辑
摘要:ijkplayer 是一款做视频直播的框架,基于ffmpeg,支持 Android 和 iOS,网上也有很多集成说明,但是个人觉得还是不够详细,在这里详细的讲一下在 iOS 中如何集成ijkplayer,即便以前从没有接触过,按着下面做也可以集成成功! ijkplayer下载地址:https://g 阅读全文
posted @ 2016-05-10 17:01 FMDN 阅读(405) 评论(0) 推荐(0) 编辑
摘要:如果你曾试图创建自己的iOS框架,你知道这不是一个头脑发热作出的决定 — 管理依赖以及写测试用例一点也不简单。本教程将会带你从头到尾创建你的第一个iOS框架,让你可以创建自己的框架。 我们将在框架暴露一个名为 RGBUIColor(red:green:blue) 的函数,这个函数根据参数返回一个新的 阅读全文
posted @ 2016-05-10 16:59 FMDN 阅读(688) 评论(0) 推荐(0) 编辑
摘要:iOS可以通过CADisplayLink实现自定义动画引擎,pop就是基于此实现的,而且比原生Core Animation更强大好用。譬如当ViewController侧滑返回的时候,系统会将Core Animation的动画会停止,而基于CADisplayLink实现的动画则不会停止,因而可以实现 阅读全文
posted @ 2016-05-10 16:57 FMDN 阅读(349) 评论(0) 推荐(0) 编辑
摘要:前言 runtime的资料网上有很多了,部分有些晦涩难懂,我通过自己的学习方法总结一遍,主要讲一些常用的方法功能,以实用为主,我觉得用到印象才是最深刻的,并且最后两个demo也是MJExtension的实现原理,面试的时候也可以多扯点。 另外runtime的知识还有很多,想要了解更多可以看我翻译的官 阅读全文
posted @ 2016-05-10 16:56 FMDN 阅读(351) 评论(0) 推荐(0) 编辑
摘要:四十、AFNetworking 传送 form-data 将JSON的数据,转化为NSData, 放入Request的body中。 发送到服务器就是form-data格式。 四十一、非空判断注意 BOOL hasBccCode = YES; if ( nil == bccCodeStr || [bc 阅读全文
posted @ 2016-05-10 16:55 FMDN 阅读(314) 评论(0) 推荐(0) 编辑
摘要:在iOS开发中经常需要使用的或不常用的知识点的总结,几年的收藏和积累(踩过的坑)。 一、 iPhone Size 二、 给navigation Bar 设置 title 颜色 UIColor *whiteColor = [UIColor whiteColor]; NSDictionary *dic 阅读全文
posted @ 2016-05-10 16:54 FMDN 阅读(523) 评论(0) 推荐(0) 编辑
摘要:1、准备 我们新建一个项目名叫ChangeFont,然后我就随便找了个名叫loveway.ttf的字体库拖进去,里面的工程目录大概就是这样的 目录 现在我们就简单的直接在storyboard上拖了一个label一个button,约束好,像这样 storyboard 嗯,就这样,很简单,运行 运行结果 阅读全文
posted @ 2016-05-10 16:53 FMDN 阅读(281) 评论(0) 推荐(0) 编辑
摘要:接下来是segmentView 这个黑色可部分是collectionView,因为他自由度比较高,简单易用~ segmentView将item和itemContent结合在一起: 以下是初始化以及布局: ///接口部分: @interface YCSegmentView : UIView ///非选 阅读全文
posted @ 2016-05-10 16:51 FMDN 阅读(270) 评论(0) 推荐(0) 编辑
摘要:大家好,今天我来教大家封装一个滚动视图,额,其实我也不确定它应该叫什么名字,所以我就起名字为YCSegment了。看下图大家应该就能明白是神马。。 (还望各位高手指出不足) 依然推荐新手学习,这次的代码为Objective-C。 在本文中你将会学习到: 封装 懒加载 协议/代理 KVO(键值观察者) 阅读全文
posted @ 2016-05-10 16:50 FMDN 阅读(365) 评论(0) 推荐(0) 编辑
摘要:本文从 setNeedsLayout 这个方法说起,分享与其相关的 UIKit 视图交互、使用场景等内容。 UIKit 为 UIView 提供了这些方法来进行视图的更新与重绘: public func setNeedsLayout() public func layoutSubviews() pub 阅读全文
posted @ 2016-05-10 16:49 FMDN 阅读(231) 评论(0) 推荐(0) 编辑
摘要:私有类 _BKObserver _BKObserver 是用来观测属性的对象,它在接口中定义了 4 个属性: @property (nonatomic,readonly,unsafe_unretained) id observee; @property (nonatomic,readonly) NS 阅读全文
posted @ 2016-05-06 09:07 FMDN 阅读(588) 评论(0) 推荐(0) 编辑
摘要:高能预警:本篇文章非常长,因为 BlocksKit 的实现还是比较复杂和有意的。这篇文章不是为了剖析 iOS 开发中的 block 的实现以及它是如何组成甚至使用的,如果你想通过这篇文章来了解 block 的实现,它并不能帮到你。 Block 到底是什么?这可能是困扰很多 iOS 初学者的一个问题。 阅读全文
posted @ 2016-05-06 09:06 FMDN 阅读(503) 评论(0) 推荐(0) 编辑
摘要:在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题,你是用什么方法来持久保存数据的?这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题,而且大家对这个问题的热情持续高涨。本文主要从概念上把“数据存储”这个问题进行剖析,并且结合各自特点和适用场景进行全面抛析。。 NSUserDefa 阅读全文
posted @ 2016-05-06 09:04 FMDN 阅读(334) 评论(0) 推荐(0) 编辑
摘要:本文主要介绍 【当UILabel的内容超出其自身的宽度范围后,进行互动展示的效果】,我们先来看一下Demo的效果图。 实际实现起来并不十分繁杂,在这里,为了开发的效率,我们使用了一个已经封装好的UILabel控制类CBAutoScrollLabel:点击“阅读原文”下载。 在写代码之前,我们还有一个 阅读全文
posted @ 2016-05-06 09:03 FMDN 阅读(895) 评论(0) 推荐(0) 编辑
摘要:RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。 RunLoop 的概念 阅读全文
posted @ 2016-05-05 09:54 FMDN 阅读(195) 评论(0) 推荐(0) 编辑
摘要:打造强大的BaseModel(1):让Model自我描述 这篇文章将讲述Model一项更高级也最常用的功能,让Model实现自动映射–将字典转化成Model(所有代码全由Swift实现) 将JSON转化为Model的意义 在iOS开发中,基于Model的数据流起到了至关重要的作用。从网络获取的数据需 阅读全文
posted @ 2016-05-05 09:53 FMDN 阅读(558) 评论(0) 推荐(0) 编辑
摘要:最终效果 更新示例.gif 更新示例.gif 示例效果.gif 示例效果.gif 示例效果1.gif 示例效果1.gif 示例效果2.gif 示例效果2.gif 示例效果3.gif 示例效果3.gif 示例效果4.gif 示例效果4.gif 示例效果5.gif 示例效果5.gif 示例效果6.gif 阅读全文
posted @ 2016-05-05 09:51 FMDN 阅读(343) 评论(0) 推荐(0) 编辑
摘要:接收到通知时有两种进入的方式:1.当app未运行时(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;launchOptions不会为空, 阅读全文
posted @ 2016-05-04 16:27 FMDN 阅读(3807) 评论(0) 推荐(0) 编辑
摘要:概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式 阅读全文
posted @ 2016-05-04 16:23 FMDN 阅读(215) 评论(0) 推荐(0) 编辑
摘要:如果同一个应用, 需要做一个带广告Lite版本, 一个不带广告的Pro版本. 那么问题来了, 该如何优雅的去实现呢? 一般来说有两种实现方法: 一个把当前工程拷贝然后再修改, 这样做会导致后期维护成本过高, 每次修改都要同时改两个工程, 到后期修改简直提心掉胆, 不过操作傻瓜式. 另外一个种就是在一 阅读全文
posted @ 2016-05-03 17:14 FMDN 阅读(388) 评论(0) 推荐(0) 编辑
摘要:1、添加一个按钮动作 2、通过NSSetUncaughtException函数注册一个处理函数,这个函数是一个void函数,接受一个NSException引用为唯一参数。 阅读全文
posted @ 2016-05-03 15:13 FMDN 阅读(314) 评论(0) 推荐(0) 编辑
摘要:1、创建一个新的NSObject子类. 2、添加两个按钮 阅读全文
posted @ 2016-05-03 15:04 FMDN 阅读(326) 评论(0) 推荐(0) 编辑
摘要:前言:有的猿会发现在设置AFNetworking访问网络超时时,直接用self.manager.requestSerializer.timeoutInterval =10.f不起作用。 解决办法:经过查找资料得知,需做以下设置: 阅读全文
posted @ 2016-05-03 13:57 FMDN 阅读(462) 评论(0) 推荐(0) 编辑
摘要:学习iOS开发一般都是从UI开始的,从只知道从IB拖控件,到知道怎么在方法里写代码,然后会显示什么样的视图,产生什么样的事件,等等。其实程序从启动开始,一直都是按照苹果封装好的代码运行着,暴露的一些属性和方法作为接口,是让我们在给定的方法里写代码实现自定义功能,做出各种各样的应用。这些方法的调用顺序 阅读全文
posted @ 2016-05-03 13:06 FMDN 阅读(357) 评论(0) 推荐(0) 编辑
摘要:1 base64 1.1 简介 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24位数据,再把这24位数据分成4组,即每组6位。再在每组的的最高位前补两个0凑足一个字节。这样就把一个3字节为一组的数据重新编 阅读全文
posted @ 2016-05-03 09:29 FMDN 阅读(1455) 评论(0) 推荐(1) 编辑
摘要:1 iOS开发环境1.1 开发环境标准的配置是MacOSX+Xcode。MacOSX的话首选用苹果电脑,Macmini最便宜只要4000多就好了然后自己配一个显示器,MacBookPro 也可以,不推荐使用MacBookAir。还有很多人使用黑苹果或者虚拟机甚至在Windows上装一些工具都是不可取 阅读全文
posted @ 2016-05-03 09:27 FMDN 阅读(282) 评论(0) 推荐(0) 编辑
摘要:简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。 HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联 阅读全文
posted @ 2016-05-03 09:25 FMDN 阅读(183) 评论(0) 推荐(0) 编辑
摘要:什么是主线程? 一个iOS程序运行后,默认会开启一条线程,称为“主线程”或“UI线程” 主线程的主要作用 1.显示/刷新UI界面 2.处理UI事件(比如点击事件,滚动事件,拖拽事件) 主线程的使用注意 1.别将比较耗时的操作放在主线程中 2.耗时操作会卡在主线程中,严重影响UI的流畅程度 如图,将耗 阅读全文
posted @ 2016-05-03 09:25 FMDN 阅读(170) 评论(0) 推荐(0) 编辑
摘要:大家都知道iPod Touch是没有电话和GPS模块的, 那么它是如何实现定位的呢? 其实它使用的是Wi-Fi定位技术,其原理与基站定位类似: 1、每一个无线AP都有一个全球唯一的MAC地址,并且一般来说无线AP在一段时间内是不会移动的。 2、设备在开启Wi-Fi的情况下,即可扫描并收集周围的AP信 阅读全文
posted @ 2016-05-03 09:23 FMDN 阅读(2523) 评论(0) 推荐(0) 编辑
摘要:谈到MVVM不得不先说一下MVC,MVC(Model-View-Controller)。 Model模型:用来呈现数据。 View视图:用来呈现用户界面。 Controller控制器:用来调节模型与视图之间的交互。 在 iOS 应用中日益增长的重量级视图控制器的问题。在典型的 MVC 应用里, 许多 阅读全文
posted @ 2016-05-03 09:22 FMDN 阅读(2733) 评论(0) 推荐(0) 编辑
摘要:在进行iOS开发过程中,我们常会遇到网络请求、复杂计算、数据存取等比较耗时的操作,如果处理不合理,将对APP的流畅度产生较大影响。除了优化APP架构,并发(concurrency)是一个常用且较好的解决方法,但并发涉及串行、并发、并行、同步、异步、多线程、GCD、NSOperation和NSOper 阅读全文
posted @ 2016-05-03 09:19 FMDN 阅读(214) 评论(0) 推荐(0) 编辑
摘要:前言 从事iOS开发已经两年了,从一无所知到现在能独立带领团队完成一系列APP的开发,网络上的大神给了我太多的帮助。他们无私地贡献自己的心得和经验,写出了一篇篇精美的文章。现在我也开始为大家贡献自己的心得,把它写成一系列iOS开发技巧系列文章。 这一系列文章都干货十足,希望各位读者可以积极留言,和我 阅读全文
posted @ 2016-05-03 09:19 FMDN 阅读(1903) 评论(0) 推荐(0) 编辑
摘要:前一段时间学习了Runtime,对类和对象的结构,和一些消息转发有一些自己的理解,现在希望简单的应用下,就决定自己写一个简单的JSON与Model的相互转化,现在总结下。 建议查看 参考资料 :Runtime学习笔记 http://lastdays.cn/2016/02/22/runtime/ 项目 阅读全文
posted @ 2016-05-03 09:18 FMDN 阅读(502) 评论(0) 推荐(0) 编辑
摘要:虽然iOS系统相比于其他手机操作系统相对安全,但是这个安全并不是绝对的,我一直相信,道高一尺魔高一丈。此文想以实际例子出发,告诉大家,如何去反编译一个app,并且从某个角度来说,iOS没有传说中的“安全”。 这里只最简单的结论给大家,具体原理以及工具的详细使用,请各位自行Google,为什么这么做呢 阅读全文
posted @ 2016-05-03 09:17 FMDN 阅读(426) 评论(0) 推荐(0) 编辑
摘要:SDWebImage作为目前最受欢迎的图片下载第三方框架,使用率很高。但是你真的会用吗?本文接下来将通过例子分析如何合理使用SDWebImage。 使用场景:自定义的UITableViewCell上有图片需要显示,要求网络网络状态为WiFi时,显示图片高清图;网络状态为蜂窝移动网络时,显示图片缩略图 阅读全文
posted @ 2016-05-03 09:15 FMDN 阅读(182) 评论(0) 推荐(0) 编辑
摘要:前言 前一段时间一直在学习iOS的架构。为什么呢? 公司的架构一直是MVC,当我们正式上线的时候,项目已经有了超十万行代码。主要的VC一般都有2000行代码以上。 关键是,目前版本我们只做了三分之一的业务逻辑… 所以,架构重构吧。 正文 MVVM MVVM: Model-View-ViewModel 阅读全文
posted @ 2016-05-03 09:14 FMDN 阅读(702) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示