iOS开发进阶
记录iOS进阶的一点一滴
HeathHsia
这个作者很懒,什么都没留下…
展开
-
Swift 值类型 和 引用类型的区别
本文参考 : The Swift Programming Language 1. 值类型:值类型包括结构体, 枚举, 所有的基本类型(整数, 浮点数, 布尔值, 字符串, 数组, 字典, 元组), 都是值类型 值类型被赋予给一个变量, 常数或者本身被传递给一个函数的时候, 实际上操作的是其的拷贝副本, 对该变量进行操作改变时, 本身并没有变化. struct Resolution { //原创 2016-12-09 15:39:36 · 1073 阅读 · 0 评论 -
Xcode 关于Build Active Architecture Only属性 armv6 armv7 armv7s arm64
这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。而设置为no时,会编译所有的版本。这个是设备对应的architecture:armv6:iPhone 2G/3G,iPod 1G/2Garmv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3Garmv7s:i转载 2016-12-22 20:39:29 · 1297 阅读 · 0 评论 -
iOS 阿里百川SDK 报错 "_OBJC_CLASS_$_CMMotionManager", referenced from: objc-class-"_res_9_getservers", ref
引入阿里百川SDK 运行时会报错"_OBJC_CLASS_$_CMMotionManager", referenced from:objc-class-ref in SGMain(SGMain99999999.o) "_res_9_getservers", referenced from: +[WXReachability isIPv6Only] in WXO原创 2016-12-22 15:24:41 · 6180 阅读 · 0 评论 -
iOS "_OBJC_CLASS_$_JPUSHService", referenced from: 解决办法
这类问题通常是framework的问题, 网上有排除错误的方法详见: http://blog.csdn.net/niepeng109/article/details/46413543大概就是: 1. 检查Link Binary With Libraries是否缺少相应地依赖类库2. 查看Build Settings下的Library Search Paths的引入文件是否是相原创 2017-03-07 16:27:16 · 19892 阅读 · 6 评论 -
iOS "_OBJC_CLASS_$_CTTelephonyNetworkInfo", referenced from:
这种报错一般都是缺少某个系统的framework在build phases里加一下 CoreTelphony.framework就可以了原创 2016-04-25 11:21:57 · 4331 阅读 · 2 评论 -
Xcode Archive报错: ld: library not found for -lAFNetworking
需要打AdHoc包到蒲公英做测试用, 发现打包失败, 但是release模式下可以打包成功AdHoc模式下 找不到AFNetworking这个包网上一般的方法也没能解决重新pod install 就完美解决了 很奇怪原创 2017-04-11 10:34:15 · 1843 阅读 · 0 评论 -
iOS 动态库(Dynamic框架)的创建以及引用添加(Embed Binary方式嵌入)
1. 首先项目有需求, 需要用到OCR识别功能(包括身份证正反面识别, 银行卡识别), 身份证识别基本已搞定, 无论是识别速度还是识别精准度都在接受范围之内. 银行卡识别这块开始用Card.io这个框架做测试, 发现这个框架局限性比较大(只支持银行卡号凸起的卡---> 信用卡), 最后决定银行卡识别用百度OCR识别SDK2. 根据百度OCRSDK识别的文档的话, 百度OCRSDK是一个动态库,原创 2017-05-03 11:57:17 · 15178 阅读 · 4 评论 -
iOS 本地通知的实现
iOS本地通知:所有的逻辑都在AppDelegate中, 一个程序更新后用户长时间没有使用的提醒 由本地应用触发的, 它是基于时间行为的一种通知形式, 例如闹钟, 提醒事项, 过了一段时间后台程序提醒用户使用该应用 iOS 通知机制又叫做消息机制, 包括(本地通知, 推送通知) 两种通知在iOS中的表现一致, 可以通过横幅或者弹框两种形式来告诉用户原创 2016-06-04 10:35:14 · 1982 阅读 · 0 评论 -
iOS NSURLSession 实现网络请求-文件下载-上传-后台下载
* 会话NSURLSession NSURLConnection通过全局状态来管理cookies, 认证信息等公共资源, 如果两个连接需要使用不同的资源配置情况时就无法解决, 这个问题在NSURLSession可以解决, NSURLSession同时对应着多个连接, 会话通过工厂方法来创建, 同一个会话中使用相同的状态信息, NSURLSession支持进程三种会话:原创 2016-06-02 11:11:20 · 10591 阅读 · 0 评论 -
iOS UICollectionView 实现轮播图
利用UICollectionView 实现轮播图 :具体代码如下, 简单粗暴, ://// ViewController.m// CollectionPhotosView//// Created by 帝炎魔 on 16/5/30.// Copyright © 2016年 帝炎魔. All rights reserved.///** * UICo原创 2016-06-01 09:06:25 · 5539 阅读 · 0 评论 -
iOS UIScrollView 实现轮播图
利用UIScrollView实现轮播图 , 需要三个ImageView轮流切换,具体原理就不讲解了.具体实现代码如下://// ViewController.m// PhotosShowDemo//// Created by 帝炎魔 on 16/5/29.// Copyright © 2016年 帝炎魔. All rights reserv原创 2016-06-01 08:47:32 · 3750 阅读 · 0 评论 -
iOS 数据持久化 CoreData
本文是关于http://www.cnblogs.com/kenshincui/p/4077833.html#autoid-3-1-0整理的CoreData是iOS3.0后引入的数据持久化解决方案, 是一种对象关系映射(ORM), 例如java后台中的Hibernate, iOS中ORM框架首先CoreData, 这是官方推荐的 不需要借助第三方框架,实际上是对sqlite的封装,提原创 2016-05-31 16:40:59 · 5129 阅读 · 0 评论 -
iOS 反射操作
1. 判断一个对象是否为某种类型:(父类也会返回YES)isKindOfClass:[NSObject class]2. 判断一个对象是否是某个类的实例化对象 (父类不会返回YES)isMemberOfClass:[NSObject class]3. 判断是否实现了某个协议conformsToProtocol:@protocol(原创 2016-05-28 09:55:03 · 3707 阅读 · 0 评论 -
iOS CoreAnimation 逐帧动画 CADisplayLink
本文参考:http://www.cnblogs.com/kenshincui/p/3972100.html#autoid-3-0-0总结的:逐帧动画 CADisplayLink动画效果:结合runloop 实现 每次屏幕刷新都会执行此方法(每秒接近60此)在此方法更新图片, 或者更新layer的某个状态实现动画效果,感觉不到动画的停滞效果当然UIImageV原创 2016-05-26 16:54:13 · 7551 阅读 · 0 评论 -
iOS CoreAnimation 转场动画 CATransition
本文参考:http://www.cnblogs.com/kenshincui/p/3972100.html#autoid-3-0-0总结的:转场动画就是从一个场景以动画的形式过渡到另一个场景。转场动画的使用一般分为以下几个步骤: 1.创建转场动画 CATransition 2.设置转场类型transtion.type、子类型transtion.subtype(可选)及其他属原创 2016-05-26 16:15:38 · 4739 阅读 · 0 评论 -
iOS CoreAnimation 关键帧动画 CAKeyframeAnimation
关键帧动画, 关键帧动画就是在动画控制过程中开发者指定主要的动画状态, 至于各种状态间动画如何进行则由系统自动运算补充(每个两个关键帧之间系统形成的动画成为补间动画), 这种动画的好处就是开发者不用逐个每个动画帧, 而只关心几个关键帧的状态即可 关键帧动画开发分为两种形式, 一种是通过设置不同的属性进行关键帧控制 另一种是通过绘制路径进行关键帧控制, 后者原创 2016-05-26 11:47:59 · 5419 阅读 · 0 评论 -
iOS CoreAnimation 基础动画CABasicAnimation
本文参考:http://www.cnblogs.com/kenshincui/p/3972100.html#autoid-3-0-0总结的:Core Animation * iOS 核心动画的实现 CoreAnimation (包含在Quartz Core 框架中), 在iOS核心动画分为几类(基础动画, 关键帧动画, 动画组, 转场动画, )原创 2016-05-26 10:11:00 · 1846 阅读 · 2 评论 -
iOS Quartz2D 透明层 TransparencyLayer
最近在研究iOS Quartz2D图形绘制引擎----->透明层TransparencyLayer透明层 通过组合两个或多个对象来生成一个组合图形, 组合图形被看成是单一对象, 当需要在一组对象上使用特效的时候, 透明层非常有用 透明层的工作方式 Quartz2D的透明层类似很多流行的图形应用中的层, 层是独立的实体,原创 2016-05-23 15:59:18 · 1862 阅读 · 0 评论 -
iOS Quartz2D 绘制简单图形--线,圆,弧线,贝塞尔曲线,文字
本文代码参考:http://www.cnblogs.com/kenshincui/p/3959951.htmlQuartz2D绘制2D图形 在iOS中常用的绘图框架就是Quartz2D, Quartz2D是CoreGraphics框架的一部分, 强大的二维图像绘制引擎, Quartz2D在UIKit框架中也有很好的集成, UIKit中的组件都是由CoreGraphics进原创 2016-05-25 10:43:19 · 4461 阅读 · 0 评论 -
iOS Quartz2D 渐变图形 CGGradient CGShading
最近在学习iOS Quartz2D二维图形绘制--->渐变效果 Quartz2D 渐变 Quartz提供了两个不透明数据odgago创建渐变: CGShadingRef 和 CGGradientRef 可以使用任何一种来创建轴向(axial)或径向(radial)渐变.一个渐变是从一个颜色到另一个颜色的填充 一个轴向渐变(也成为线性渐变)原创 2016-05-23 14:40:45 · 5523 阅读 · 0 评论 -
iOS runtime的理解
原文来自简书的大神Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西。最近在学习Runtime,有自己的一些心得,整理如下,一为 查阅方便二为 或许能给他人一些启发,三为 希望得到大家对这篇整理不足之处的一些指点。什么是Runtime我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target do转载 2016-05-13 08:39:14 · 966 阅读 · 0 评论 -
ios runtime IMP指针 消息转发机制Demo
本文代码是根据消息转发机制来写的1. UIViewController (ViewDidLoadName)文件 UIViewController的category在实现viewDidLoad系统方法的前提下 添加自定义的方法2. Person类有一个run的方法,但是并没有实现, 这里展示了如何OC中的消息转发机制, 使其不崩溃实现方法, 或者转到Car的run方法来实现原创 2016-05-12 17:10:31 · 3108 阅读 · 3 评论 -
iOS 关于IMP指针的作用
原文地址:http://www.jianshu.com/p/425a39d43d16可能大家一直看到有许多朋友在Runtime相关文章中介绍IMP指针的概念,那么IMP究竟有什么实际作用呢?让我们先从一个函数看起来。Method Swizzling如果对Runtime有一定了解的话,一定听说过或者用过这个函数:void method_exchangeImplemen转载 2016-05-12 14:30:30 · 1985 阅读 · 0 评论 -
iOS Crash Log 分析(三)
如果不知道怎么获取CrashLog 或者 Crash Log符号化请看这两篇文章如何获取真机Crash Log 文件如何符号化Crash Log文件打开Crash Log 会看到如下的信息:Incident Identifier: AF4F2C83-8F68-47EF-B5AA-F16B067B5DF4CrashReporter Key: 5670de85ee1f0原创 2016-05-05 12:03:09 · 14341 阅读 · 0 评论 -
ios ViewController生命周期 ---- push跳转和模态跳转的VC生命周期
ViewController生命周期的生命周期相信大家也都比较熟悉了, 不熟悉的可以看下ViewController生命周期那么在push跳转和模态跳转中ViewController会是什么样的生命周期:笔者做了一个打印的测试(很好理解) push 和 模态对于ViewController生命周期方法执行顺序还是有点区别的O(∩_∩)O哈哈~具体代码和打印结果如下:Vi原创 2016-05-05 09:39:34 · 7648 阅读 · 0 评论 -
iOS Crash文件分析(二)
Crash文件分析:符号化iOS Crash文件的3种方法有如下3种方法 方法1 使用XCode这种方法可能是最容易的方法了。 需要使用Xcode符号化 crash log,你需要下面所列的3个文件:1. crash报告(.crash文件)2. 符号文件 (.dsymb文件)3. 应用程序文件 (appName.app文件,把IPA文件后缀改为zip,然后解转载 2016-05-03 15:13:00 · 3048 阅读 · 0 评论 -
ios 获取真机的crash日志(一)
在项目真机运行中, 可能会出现我们意想不到的crash,在我们找不到原因的时候,可以通过Xcode将crash文件导出来,来进行进一步分析1.连接真机2.找到Xcode --> Window --> Devices3.获取所有的crash日志文件4. 右键可以Export,就可以查看相关的crash的原因下节:如何分析crash文件原创 2016-05-03 14:55:28 · 8830 阅读 · 0 评论 -
iOS 获取view的controller UIView+UIViewController
- (UIViewController *)viewController { //通过响应者链,取得此视图所在的视图控制器 UIResponder *next = self.nextResponder; do { //判断响应者对象是否是视图控制器类型 if ([next isKindOfClass:[UIViewC原创 2016-04-27 14:27:59 · 4843 阅读 · 0 评论 -
iOS 利用摄像头闪光灯测心率绘画心率图
最近做的项目是医疗相关的, 其中有个功能是开启摄像头和闪光灯, 把手指放在摄像头处,便可以绘画心率曲线, 并估出心跳次数.刚听到这个项目功能点的时候,头很大 毫无头绪,在网上查了查资料 小demo, 最后算是实现了, 但是还是有点bug(线不太稳定, 测得不太准)一.实现原理(来自知乎): 用高光(摄像头旁的 LED 闪光灯,或者其他足够亮的光源也可)照亮指尖皮下毛细血管,原创 2016-04-27 11:22:46 · 5370 阅读 · 2 评论 -
iOS 关于MVC MVVM的理解(一)
原文地址: http://casatwy.com/iosying-yong-jia-gou-tan-viewceng-de-zu-zhi-he-diao-yong-fang-an.html一. MVC 1. MVC(Model-View-Controller)其中Model就是作为数据管理者,View作为数据展示者,Controller作为数据加工者,Model和转载 2016-04-24 15:33:02 · 4488 阅读 · 0 评论 -
iOS 基于runtime 解决UIButton重复点击 发送多次请求问题
这里使用的是Runtime的黑魔法方法实现,灵感来源于CocoChina,在用网上搜到的方法运行不成功,死循环,废话不多说上自己的代码。给UIControl建个类目UIControl+FMGControl.h#import @interface UIControl (FMGControl)/** 按钮点击间隔*/@property (assign, nonatomic) NS转载 2016-04-12 17:55:01 · 1476 阅读 · 5 评论 -
Auto Layout Process 自动布局过程
用Masonry实现改变约束,动画功能,需要用到自动布局的几个方法,研究了下自动布局的过程方法1、setNeedsUpdateConstraints当一个自定义view的某个属性发生改变,并且可能影响到constraint时,需要调用此方法去标记constraints需要在未来的某个点更新,系统然后调用updateConstraints.2、needsUpdateConstraints原创 2016-03-26 11:42:39 · 1108 阅读 · 0 评论 -
IOS中通知中心NSNotificationCenter应用总结
一.了解几个相关的类1. NSNotification这个类可以理解为一个消息对象, 其中有三个成员变量.这个成员变量是这个消息对象的唯一标识,用于辨别消息对象@property (readonly, copy) NSString *name;这个成员变量定义一个对象, 可以理解为针对某个对象的消息@property (readonly, retain) id object原创 2016-04-11 18:26:16 · 885 阅读 · 0 评论 -
iOS RSA的网络安全模型,iOS签名机制总结(登录,token安全,签名)
原文地址:http://www.jianshu.com/p/2927ca2b3719摘要本文将针对RSA登录和http请求作讲解,希望对大家有所帮助一,登录,登录保持(http请求)登录机制登录机制大概分为以下三个阶段:1.登录验证: 是指客户端提供用户名和密码, 向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确认.2.登录保持:是指客户端转载 2016-04-12 17:37:16 · 791 阅读 · 0 评论 -
iOS 客户端MD5加密方法
对NSString 添加类目导入 系统原生的头文件实现加密代码#import "NSString+MD5code.h"#import @implementation NSString (MD5code)// MD5加密方法+ (NSString *)md5WithString:(NSString *)input{ const char* str = [input UTF8Str原创 2016-04-12 17:40:39 · 3317 阅读 · 0 评论 -
Objective-C 语言特性
OC为C语言添加了面向对象的特性, 尤其是超集. OC使用动态绑定的消息结构, 也就是说, 在运行时才会检查对象类型, 接受一条消息之后, 执行什么代码,由运行环境而非编译器来决定, 理解好C语言的核心概念有助于写好OC程序(内存模型和指针)原创 2016-04-07 09:37:58 · 1463 阅读 · 0 评论 -
iOS Objecttive-C语言 定义常量的几种方式与区别 static const 定义常量 少用#define预处理指令 多用类型常量
iOS Objecttive-C语言 定义常量的几种方式与区别 static const 定义常量 少用#define预处理指令 多用类型常量 全局变量:如果需要对外公开某个常量原创 2016-04-15 10:12:47 · 5852 阅读 · 0 评论