iOS学习
文章平均质量分 68
_RhythmMaster
这个作者很懒,什么都没留下…
展开
-
iOS之帧动画最简单使用
1. 定义shake方法- (void)shake { CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"position.x"]; keyFrame.duration = 0.4; CGFloat x = self.layer.position.x; keyFram原创 2016-07-30 14:45:03 · 479 阅读 · 0 评论 -
iOS APP性能优化
1:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源。2:本地图片加载方式 本地图片加载常用方法有两种: (1),[UIImage imageNamed:@”“] 图片多次使用时使用,需要使用此方式加入缓存 (2),[[UIImage alloc] initWithContentsOfFile:@”“] 图片不常使用时,不使用缓存3:不要阻塞主线程 开发中除了UI处理外,其它任原创 2016-08-12 11:18:27 · 378 阅读 · 0 评论 -
iOS开发的诡异技巧
TableView不显示没内容的Cell怎么办? 类似于图1,我不想让下面的那些空显示。很简单,添加“self.tableView.tableFooterView = [[UIView alloc] init];”试过都说好,加完这句之后就变成了自定义了leftBarbuttonItem左滑返回手势失效了怎么办? self.navigationItem.leftBarButtonItem =原创 2016-08-12 11:24:28 · 225 阅读 · 0 评论 -
iOS系列版本更新上架流程
1 上传至apple developer1.1 上传准备工作更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件和证书之类的文档下载好了,所以无需再安装此类文件。 在测试人员确认可以上架以后,首先需要在 Build Settings/Code Signing中将之前真机调试用的developer调试证书换成distribution发布证书,然后在product/scheme/eidt s原创 2016-08-12 11:35:26 · 1529 阅读 · 0 评论 -
iOS性能测试
在Xcode中提供了两种工具帮助查找泄漏点:Analyze和Profile,Analyze是静态分析工具可以通过菜单 Product→Analyze启动,为静态分析之后的代码画面;Profile是动态分析工具,这个工具叫“Instruments”,它是Xcode 集成在一起,可以在Xcode中通过菜单Product→Profile启动,Instruments有很多Trace Template(跟踪模原创 2016-08-12 11:39:34 · 315 阅读 · 0 评论 -
Runtime的那点事儿(一)消息机制
RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。。编译完成之后直接顺序执行,无任何二义性。OC的函数调用成为消息发送。属于动态调用过程。在编译的时候并不能决定真正调用哪个函数(事实证明,在编 译阶段,OC可以调用任何函数,即使这个函数并未实现,只要申明过就不会报错。而C语言在编译阶段就会报错)。只有在真正运行的时原创 2016-08-12 14:11:17 · 245 阅读 · 0 评论 -
Objective-C Runtime的知识
笔记分为四篇:刨根问底Objective-C Runtime(1)- Self & Super刨根问底Objective-C Runtime(2)- Object & Class & Meta Class刨根问底Objective-C Runtime(3)- 消息和Category刨根问底Objective-C Runtime(4)- 成员变量与属性刨根问底Objective-C Runtime(1原创 2016-08-12 14:26:11 · 416 阅读 · 0 评论 -
iOS中几种数据持久化方案
概论所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:plist文件(属性列表)preference(偏好设置)NSKeyedArchiver(归档)SQLite 3CoreData沙盒在介绍各种存储方法之前,有必要说明以下沙盒机制。iOS程序默认情况下只能访问程序自己的目原创 2016-08-12 15:22:44 · 393 阅读 · 0 评论 -
一些关于UIView的 方法,持续增加
1、UIView层次管理bringSubviewToFront,sendSubviewToBack 将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法。 将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。 用第二层子视图 换 第一层子视图的位置 self.view是第0层[self.view exc原创 2016-09-16 11:07:22 · 296 阅读 · 0 评论 -
iOS CoreAnimation动画系列教程(一):CABasicAnimation
一、概念 这个部分你需要了解以下概念: CALayer、CAAnimation、拍电影(R U kidding me?)1、CALayer CALayer是个与UIView很类似的概念,同样有backgroundColor、frame等相似的属性,我们可以将UIView看做一种特殊的CALayer。但实际上UIView是对CALayer封装,在CALayer的基础上再添加交互功能。UIView的原创 2016-08-22 18:22:20 · 421 阅读 · 0 评论 -
iOS CoreAnimation动画系列教程(二):CAKeyFrameAnimation
在上一篇专题中我们提到,CAAnimation可分为以下四种:1.CABasicAnimation通过设定起始点,终点,时间,动画会沿着你这设定点进行移动。可以看做特殊的CAKeyFrameAnimation2.CAKeyframeAnimationKeyframe顾名思义就是关键点的frame,你可以通过设定CALayer的始点、中间关键点、终点的frame,时间,动画会沿你设定的轨迹进行移原创 2016-08-22 18:38:07 · 418 阅读 · 0 评论 -
TCP、UDP、HTTP、SOCKET之间的区别
1、IP:网络层协议; 2、TCP和UDP:传输层协议; 3、HTTP:应用层协议; 4、TCP/IP代表传输控制协议/网际协议,指的是一系列协议。 TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。原创 2016-09-09 09:35:37 · 360 阅读 · 0 评论 -
替换关键字
注意点: 使用Afnetworking无法替换关键字,系统原生的可以做到,下面代码还涉及到字符串的截取拼接 完全自己使用NSArray *arrOne = [path componentsSeparatedByString:@"list/"]; NSArray *arrTwo = [arrOne.lastObject componentsSeparatedByString:@"/"];原创 2016-07-30 14:51:55 · 416 阅读 · 0 评论 -
UISegmentedControl搭配UIScrollView使用
实现左右滑动切换及点击切换 自用@interface TZLSegmentController ()<UIScrollViewDelegate>@property (nonatomic) UISegmentedControl *segmentControl;@property (nonatomic) TZLLiveController *liveVC;@property (nonatomic原创 2016-07-30 14:58:00 · 603 阅读 · 0 评论 -
追踪app崩溃率
App应用闪退时,操作系统会生成一个crash日志,保存在设备上。crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈跟踪信息和内存映像,这样就能够通过解析这些信息进而定位crash发生时的代码逻辑,从而找到App闪退的原因。通常来说,crash产生来源于两种问题:违反iOS系统规则导致的crash和App代码逻辑BUG导致的crash,下面分别对他们进行分析。违反iOS系统规则产生cr原创 2016-08-16 09:00:49 · 1968 阅读 · 0 评论 -
如何查看iOS已上架app崩溃分布、定位crash发生的行
在app上线后我们需要知道app运行的怎么样,下载的人多不多,这些呢就需要在iTunes connect中查看。对于开发人员来说,查看app的崩溃情况尤为重要。下面介绍我是怎么样查看app的崩溃情况的。一、先分析app的崩溃的分布情况 这个需要有(iTunes connect账号),通过分析我们可以查看到自己的app奔溃主要发生在那些机型上。 如果没有账号,别着急,直接走第二步。二、打开xcode,原创 2016-08-16 09:02:38 · 610 阅读 · 0 评论 -
事件传递和响应者链条原理分析
一、触摸事件的事件传递 触摸事件的传递方向是 由内至外(外:指所触摸的最外层视图)触摸开始后,系统会把事件加入到UIApplication事件队列。而后UIApplication会从事件队列中取出最前面的事件分发处理。先分发给程序的主窗口,让后主窗口调用hitTest: withEvent: 方法,查找用户所点击的视图。 1.1、在最内层视图(key window 视图)上调用 point原创 2016-08-16 09:46:34 · 694 阅读 · 0 评论 -
@protocol和category 中如何使用@property (协议和分类中如何使用@property属性)
在协议@protocol中使用@property只会生成setter和getter方法声明,我们使用属性的目的就是希望遵守我们协议的对象能够实现该属性; 在分类category中使用@property 也是只会生成setter 和getter 方法声明,如果真需要个category增加属性的实现,需要借助于两个运行时的函数 //objc_setAssociatedObject原创 2016-08-16 18:12:21 · 446 阅读 · 0 评论 -
struct和class的区别 观察者模式 https连接 点击button收到点击事件,中间发生了什么?4道过滤菜鸟的iOS面试题
1.struct和class的区别 在面试之前你觉得所有的计算机专业的学生都应该能答的上来,事实是我面的人里有超过三分一没有答上来。有时我还会顺便问下swfit里的array是什么类型,在大量复制时会不会有性能问题。2.介绍一下观察者模式也许有些人已经觉得设计模式有些过时,没有整本读过。就算如此iOS里常用的几个设计模式我觉得总要了解吧。这里如果说NSNotificationCenter怎么使用的原创 2016-08-16 18:19:53 · 1470 阅读 · 0 评论 -
iOS 单例模式的写法
iOS的单例模式有两种官方写法,如下:1)不使用GCD的方式#import "Manager.h"static Manager *manager;@implementation Manager+(Manager *)defaultManager{ if(!manager) manager=[[self allocWithZone:NULL] init]; return原创 2016-09-09 09:13:30 · 440 阅读 · 0 评论 -
详解Objective-C的meta-class
OC中的每一个类都会有一个与之相关联的meta class,但是你却几乎永远也不会直接使用到,它们始终笼罩着一层神秘的面纱。笔者将以运行时动态创建一个class为引,通过剖析创建的class pair来弄明白到底meta-class是什么以及更深入的了解它对于OC中对象、类的意义。 在运行时创建类 以下代码演示运行时创建一个NSError的子类,同时添加一个实例方法给它:Class newCla原创 2016-08-15 10:16:08 · 282 阅读 · 0 评论