- 博客(30)
- 收藏
- 关注
转载 容易忘记的便捷性代码
带提示功能的宏// 宏里面的#,会自动把后面的参数变成C语言的字符串// 逗号表达式,只取最右边的值// 宏的操作原理,每输入一个字母就会直接把宏右边的拷贝,并且会自动补齐前面的内容。#define keyPath(objc,keyPath) @(((void)objc.keyPath,#keyPath))转载于:https://www.cnblogs....
2016-02-20 11:48:00 94
转载 YYKit @autoreleasepool 使用,优化内存
写在前面 最近再看YY大神的YYKit工具,发现在代码中经常使用@autoreleasepool,特别是在与for循环搭配使用的时候。刚开始很不能理解。 先有个概念: 自己创建的对象:使用 alloc new copy mutablecopy 以及他们的驼峰变形 allocObject newObject copyObject mutablecopyObject。这...
2016-01-10 16:58:00 132
转载 info信息总结
查询info信息[[NSBundle mainBundle] infoDictionary]以下是对应的输出{ BuildMachineOSBuild = 15C50; CFBundleDevelopmentRegion = en; CFBundleExecutable = YTKNetworkDemo; CFBun...
2016-01-08 16:16:00 200
转载 RunLoop
RunLoop : 运行循环 作用: 保证程序持续的运行,不然main函数结束,程序也就结束了。 处理各种APP事件(触摸 定时器 selector) 节省CPU资源,提高程序性能(工作时候工作,休息时候休息) RunLoop与线程 一个线程对应一个RunLoop 主线程的RunLoop已经创建好了,子线程的RunLoop需要...
2016-01-06 22:30:00 93
转载 常用的延时执行
1、performSelector 一旦定制好延时任务,不会卡住当前线程//2秒后再调用self的run方法[self performSelector:@selector(run) withObject:nil afterDelay:2.0];2、使用GCD函数// 该方法中, 会根据传入的队列来决定回掉block在哪个线程中执行 // 如果传入的是...
2016-01-06 21:55:00 106
转载 GCD
概念:1、首先搞清楚四个最常用的术语同步、异步、并发、串行 同步和异步主要影响:能不能开启新的线程 同步:只是在当前线程中执行任务,不具备开启新线程的能力 异步:可以在新的线程中执行任务,具备开启新线程的能力 并发和串行主要影响:任务的执行方式 并发:允许多个任务并发(同时)执行(并不是用来并发就能开线程,得要使用了异步线程) ...
2015-12-28 22:19:00 78
转载 常用存储位置
沙盒中的info.plist文件内容。 NSDictionary *dict = [NSBundle mainBundle].infoDictionary;版本号: NSString *key = @"CFBundleVersion"; NSString *lastVersion = [[NSUserDefaults standardUser...
2015-12-17 09:09:00 75
转载 AFNetworking 不支持 text/plain,unacceptable content-type: text/plain
1、 用AFNetworkingPOST传递参数(获取微博的accessToken)的时候,具体代码如下:AFHTTPSessionManager *session = [AFHTTPSessionManager manager]; NSMutableDictionary *parameters = [NSMutableDictionary dictionary];...
2015-12-16 14:42:00 109
转载 iOS layer 动画
x轴缩放:CABasicAnimation *theAnimation;theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.scale.x"];theAnimation.duration=8;theAnimation.removedOnCompletion = YES;theAnimation.fromValue...
2015-12-13 18:32:00 66
转载 自定义对象实现copy,遵守协议<NSCopying, NSMutableCopying>
自定义对象实现copy,步骤 1.需要遵守NSCopying协议 2.实现协议中的- (id)copyWithZone:(NSZone *)zone 3.在- (id)copyWithZone:(NSZone *)zone方法中创建一个副本对象, 然后将当前对象的值赋值给副本对象即可转载于:https://www.cnblogs.com/XXxiaotaiyang/...
2015-12-12 17:47:00 169
转载 const&static&extern
const结论: 如果const写在指针变量名的旁边, 那么指针的指向不能变, 而指向的内存空间的值可以变 如果const写在数据类型的左边或者右边, 那么指针的指向可以改变, 但是指向的内存空间的值不能改变// 字符串常量,修饰account,既:account这个是常量不能改,但是他所指向的值 @"这个是可以改的",而且文档字符串常量都是这样的,颜色和...
2015-12-12 17:34:00 71
转载 git
1.新建一个“本地仓库”$ git init2.配置仓库》告诉git你是谁git config user.name zcc》告诉git怎么联系你git config user.email zcc@email.cn》上面一种配置方式是一次性的配置, 会配置到被管理文件的。git文件夹下》下面一种配置方式是一劳永逸的方式:git config ...
2015-12-11 20:39:00 96
转载 NSArray & NSDictionary
一、NSArray1.1 简单创建方法由难到简 NSArray *arr = [[NSArray alloc] init]; NSArray *arr = [NSArray arrayWithObject:@"zcc"];// 数组中的nil是结束符 NSArray *arr = [NSArray arrayWithObjects:@"zc...
2015-12-11 13:33:00 82
转载 copy&mutableCopy 浅拷贝(shallow copy)深拷贝 (deep copy)
写在前面其实看了这么多,总结一个结论:拷贝的初衷的目的就是为了:修改原来的对象不能影响到拷贝出来得对象 &&修改拷贝出来的对象也不能影响到原来的对象所以,如果原来对象就是immutable的,然后用使用copy,生成的对象也还是immutable的,原来和现在的对象都是不可变的,所以就没有必要单独在内存中开辟存储空间,既生成新的对象了。所以这样生成的叫浅拷贝...
2015-12-09 20:46:00 176
转载 03-图形上下文栈, 图形的平移 旋转 缩放
图形上下文栈存储着图形的现有的绘画状态,如果有需求,在同一个View中画不同粗细的线,就需要保存两份绘画状态,每份绘画状态保存一种属性- (void)drawRect:(CGRect)rect { // Drawing code // 需求: 先画一个矩形,颜色为红色,线宽为3 // 再画一个矩形,颜色为黑色,线宽为默认 ...
2015-12-07 19:52:00 95
转载 02- 画文字和图片-------------之前写的那个微博项目,可以试试用画图片的方式来处理,这样应该比UILabel 代码少点,一会试试...
1.画图片- (void)drawRect:(CGRect)rect { // Drawing code UIImage *image = [UIImage imageNamed:@"papa"]; // 在这个点画 [image drawAtPoint:CGPointZero]; // 指定一个区域 ...
2015-12-07 19:25:00 80
转载 Quartz 官网翻译(转载)
Paths中的几个重要元素Pointsvoid CGContextMoveToPoint ( CGContextRef c, CGFloat x, CGFloat y);指定一个点成为current pointQuartz会跟踪current point一般执行完一个相关函数后,current point都会相应的改变.Lines...
2015-12-07 19:05:00 112
转载 01 画简单线的方法
1.画三角形- (void)drawRect:(CGRect)rect { // 获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 确定三个点 CGContextMoveToPoint(ctx, 30, 30); // 起点 CGContextAdd...
2015-12-07 19:03:00 62
转载 @property 修饰符
原子性---nonatomic特质在默认情况下,由编译器合成的方法会通过锁定机制确保其原子性(atomicity)。如果属性具备 nonatomic 特质,则不使用同步锁。请注意,尽管没有名为“atomic”的特质(如果某属性不具备 nonatomic 特质,那它就是“原子的” ( atomic) ),但是仍然可以在属性特质中写明这一点,编译器不会报错。若是自己定义...
2015-12-07 11:27:00 68
转载 SEL 类型
1.SEL类型的第一个作用, 配合对象/类来检查对象/类中有没有实现某一个方法 SEL sel = @selector(setAge:); Person *p = [Person new]; // 判断p对象中有没有实现-号开头的setAge:方法 // 如果P对象实现了setAge:方法那么就会返回YES // 如果P对象没有实现s...
2015-12-07 11:24:00 167
转载 构造方法概念,自定义构造(init)方法的用途, 类工厂方法(就是直接用类名 类调用)...
一、 构造方法构造方法:在OC中init开头的方法, 我们称之为构造方法构造方法的用途: 用于初始化一个对象, 让某个对象一创建出来就拥有某些属性和值// 比如我们定义一个Person的类,然后在类里面定义一个age的变量。如果不使用构造方法,有需求创建5个人,每个人年龄初始化为6,这么我们就需要下面的6句代码。Person *p = [[Person alloc...
2015-12-07 10:31:00 192
转载 id 和 instancetype 方法的区别
首先明确 id 和 instancetype 都是万能指针,都能指向一个对象:(instancetype == id == 万能指针 == 指向一个对象)主要区别亮点:1. id 在编译时候不能判断对象的真是类型,但是instancetype 编译的时候可以判断对象真是类型,这样的话,编写代码时候,如果类型指错,instancetype可以告警。我们应该尽量把告警暴露在编译的时候...
2015-12-07 10:14:00 92
转载 张超超OC基础回顾_05 property修饰符,id类型,instancetype。。。
一、property如果给一个属性同时提供了getter/setter方法, 那么我们称这个属性为可读可写属性如果只提供了getter方法, 那么我们称这个属性为只读属性如果只提供了setter方法, 那么我们称这个属性为只写属性如果既没有提供getter也没有提供setter方法, 那么我们称这个属性为私有属性格式:@property(属性修饰符) ...
2015-11-24 13:55:00 103
转载 - description 方法作用
自定义一个Person类@interface Person : NSObject{ int _age; double _height; double _weight; NSString *_name; NSString *_tel; NSString *_email;}- (void)setAge:(...
2015-11-24 09:31:00 278
转载 张超超OC基础回顾04_实例变量修饰(@public),点语法,self关键字,多态,继承...
零、实例变量修饰符/* @public 就是实例变量修饰符 @public >可以在其它类中访问被public修饰的成员变量 >也可以在本类中访问被public修饰的成员变量 >可以在子类中访问父类中被public修饰的成员变量 @private >不可以在其它类中访问被private修饰的成员变量 >...
2015-11-23 17:17:00 139
转载 常用Xcode文档位置,修改Xcode项目模板地址总结,以及常用地址,随时更新。
Xcode文档~/Library/Developer/Shared/Documentation/DocSets or/Applications/Xcode.app/Contents/Developer/Documentation/DocSets开启隐藏文件(重启finder生效):defaults write com.apple.finder AppleSho...
2015-11-23 14:29:00 145
转载 张超超OC基础回顾03_结构体类型作为成员变量的特殊用法
直接上例子:要求: 合理的设计一个”学生“类 学生有* 姓名* 生日两个属性和说出自己姓名生日方法 要求利用设计的学生类创建学生对象,并说出自己的姓名和年龄描述学生类事物名称: 学生(Student)属性:姓名(name), 生日(birthday)行为:说出字节姓名和生日(say)typedef struct {...
2015-11-23 14:23:00 103
转载 张超超OC基础回顾02_成员变量(属性),局部变量,全局变量的区别
成员变量:写在类声明的大括号中的变量, 我们称之为 成员变量(属性, 实例变量)成员变量只能通过对象来访问注意: 成员变量不能离开类, 离开类之后就不是成员变量成员变量不能在定义的同时进行初始化存储: 堆(当前对象对应的堆的存储空间中)存储在堆中的数据, 不会被自动释放, 只能程序员手动释放@interface Person : NSObject{...
2015-11-23 11:21:00 178
转载 张超超OC基础回顾01_类的创建,申明属性,以及本质
一、 类的声明和实现&规则1.如何编写类的声明以@interface开头 , 以@end结尾, 然后再class name对应的地方写上 事物名称, 也就是类名即可注意: 类名的首字符必须大写声明一个类的目的就是为了告诉系统, 我们这个类中有哪些属性和行为OC类声明中属性只能在写@interface和@end之间的{}中注意: 编写OC类属性的时, 建议...
2015-11-21 12:32:00 131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人