Cocoapods 使用 遇到的问题 今个在公司重新安装cocoapods 安装好后使用出现问题,为此纠结了好久,特纪录一下下面图可以看出,使用cocoapods 出错,报红 解决方法: 在终端中输入 sudo xcodebuild -license 出来,出现一系列协议,按空格键(注意 )到最后,输入agree (注意 agree 输入之前不能有空格),正确输入之后有如下显示,表示成功。
iOS——属性的属性 属性关键字 补充 关于nonatomic,如果我们能确定不需要多线程访问时,强烈推荐使用这个关键字,因为atomic对于性能的损失相对较大。 nonatomic 决定比编译器生成的setter、getter 方法是否是原子操作。 如果是类的delegate,推荐使用assign关键字,原因是避免了retain的死循环造成的对象无法真正的释放strong 、weak
iOS —— ARC、MRC 下dealloc 方法存在的意义 MRC下dealloc 方法其实在MRC中dealloc方法存在的主要意义是为了释放自身的实例变量,移除观察者,停止timer,移除通知,代理置空等。注意MRC 下dealoc 方法一定要在最后写[super dealloc];ARC下 系统会帮助我们释放该对象所包含的实例变量,但是有些对象还是需要们自己去释放的(比如Core Foundation框架下的一些对象),另外通知中观察者
iOS —— 简述OC 的内存管理机制 关于OC 的内存管理有很多模糊的地方,下面我们一一说起 首先概念性问题概念为什么进行内存管理 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。内存管理类型: OC 类型 基本类型和C语言的类型:如: int,short
iOS——延展、类目、代理协议 类目应用 对现有的类添加扩展,如:系统中的类,在类目中添加的方法会被子类继承,而且运行时跟其他的方法没有区别。 作为子类的替代方式,不需要定义和使用一个子类,可以通过类目直接向已有的类目里添加方法。 对类中的方法进行归类,利用catigopry把一个庞大的类划分为小块来分别进行开发,从而更好地对类中的方法进行更新和维护。 通过类目添加的方法会成为原始类 的一部分注
iOS——@synthesize 与@dynamic 的不同 一、SDK中描述是在声明property的时候,有2个选择 1:通过@synthesize 指令告诉编译器在编译期间产生getter/setter方法。 2:通过@dynamic指令,告诉编译器属性的setter与getter 方法由用户自己实现。 假如一个属性被声明为@dynamic str, 然后没有提供setter和getter方法,编译的时候没有问题,但是当程序运行到 instacn
iOS——关于应用程序生命周期问题 开发应用程序都要了解其生命周期,今天我们接触一下iOS应用程序的生命周期。Main 函数入口 应用程序启动的时候会执行main 函数,而main函数里面执行了UIApplicationMain函数。UIApplicationMain函数执行完主要做了以下几个操作: (1)创建应用程序UIApplication 对象 (2)创建了应用程序代理对象。默认的应用程序代理对象是AppDelegate。
iOS ——Animation 中的事务CATransaction 理解 CALayer的“Animatable”属性的设置都应该属于某一个CATransaction事务,CATransaction的作用是保证多个“Animatable”的变化同时进行。也就是说CALayer的属性修改需要依赖CATransaction。 CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务. [隐式]在某次R
iOS———实现抖动效果 实现View 的抖动效果,直接调用下面方法#pragma mark 抖动动画- (void)shakeAnimationForView:(UIView *) view{ // 获取到当前的View CALayer *viewLayer = view.layer; // 获取当前View的位置 CGPoint position = viewLayer.positio
iOS —— CALayer 层的属性及隐式动画 CALayer 进一步理解 CALayer包含在QuartzCore框架中,这是一个跨平台的框架,既可以用在iOS中又可以用在Mac OS X中。在使用Core Animation开发动画的本质就是将CALayer中的内容转化为位图从而供硬件操作,所以要熟练掌握动画操作必须先来熟悉CALayer。 当利用drawRect:方法绘图的本质就是绘制到了UIView的layer(属性)中,在
iOS ——主要框架介绍 最近网上看到不错的关于iOS 主要框架的总结, 在这里贴出来大家一起学习。 http://blog.csdn.net/yuhuangc/article/details/7575519框架 框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或函数可以被应用程序调用。 IOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需
iOS —— CALayer 创建图层 添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控制器view的layer上) 代码: 添加一个显示图片的图层#import "CALayerViewController"@interface CALayerViewController ()@end@implementa
iOS—— CALayer 简介 简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @property(nonatom
iOS——Core Graphic框架学习笔记 .Core Graphic是什么? •Core Graphic框架是一组基于C的API,可以用于一切绘图操作,这个框架的重要性,仅次于UIKit和Foundation 6.Core Graphic有什么用? •当使用UIKit创建按钮、标签或者其他UIView的子类时,UIKit会用Core Graphics将这些元素绘制在屏幕上。此外,UIEvent(UIKit中的事件处理类)也会使用Co
iOS ——逐帧动画 三、补充1.UIImageView的帧动画UIImageView可以让一系列的图片在特定的时间内按顺序显示相关属性解析:animationImages:要显示的图片(一个装着UIImage的NSArray)animationDuration:完整地显示一次animationImages中的所有图片所需的时间animationRepeatCount:动画的执行次数(默认为0,
iOS ——QuartzCore核心动画框架 核心动画框架 使用核心动画需要引入的框架:#import CALayer: CoreAnimation CALayer就是UIView上的图层,很多的CALayer组成了UIView。 CALayer与UIView是两个完全不同的类 UIView动画就是简单动画,可以实现改变,偏移,形变,翻转,旋转,翻页 QuartzCore.framework:CAAnimation:
iOS—— UIView 动画 UIView动画UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持,执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和[UIView commitAnimations]之间UIView本身对于基本动画和
iOS—— 秒学远程推送 一. 引言 iOS 中消息推送两种方式,分别是本地推送、远程推送。 这里主要将远程推送与配置过程。二、远程推送机制的原理 这张图很清晰,大致意思是:你的应用服务端将消息发送到apple 的APNS服务器,APNS服务器将消息推送到指定的IPhone,最后由IPhone负责将消息推送至你的APP。虽然中间加了APNS,感觉好像增加了负担,其实恰恰相反, 因为apple 对推送的统一管理,使我
iOS——多线程编程详细解析 基本定义: 程序:由代码生成的可执行应用。(例如QQ.app) 进程:一个正在运行的程序可以看做是一个进程。 (例如:正在运行的QQ 就是一个进程),进程拥有独立运行所需要的全部资源。 线程: 程序中独立运行的代码段。(例如: 接收QQ 消息的代码) 一个进程是由一个或者多个线程组成。进程只负责资源的调度和分配,线程才是程序真正懂得执行单元,负责代码的执行。单线程 每个正在运行的程序(即进