首页 > 学院 > 开发设计 > 正文

OC-杂谈篇(1)

2019-11-09 18:44:08
字体:
来源:转载
供稿:网友

一、@autoreleasepool

参考资料:http://www.tuicool.com/articles/nEbmUnE

知识补充:

MRC( Mannul Reference Counting ) / ARC( Automatic Reference Counting ) 分别对应 手动引用计数 / 自动引用计数

等价于:

NSAutoreleasePool *pool = [[ NSAutoreleasePool alloc] init]; NSString *str = [[[NSString alloc] initWithString: @”str”] autorelease]; //给对象发送autorelease的信息,当NSAutoreleasePool结束时,标记过“autorelease”的对象会被释放,而ARC可自动发送autoreleasepool。 [pool release]; //str is released

⚠️适合于循环中的临时变量,每次循环都会被释放。(#?难道不会耗费时间吗?#)

二、#import可保证头文件(预编译头文件 -> 一种经过压缩、摘要形势的头文件)只被包含一次,而不论在文件中出现多少次。

三、框架

定义:一种聚集在一个单元的部件集合。包括头文件、库、图像、声音文件。苹果公司将Cocoa、Carbon、QuickTime、OpenGL等技术作为框架集提供。Cocoa包含Foundation和application Kit,其中Foundation处理的是用户界面之下的层(layer)中的特性,例如数据结构和通讯机制。(#?层是什么鬼?#)CF -> Core Foundation(与Cocoa一样)

每个框架都有一个主头文件,包含各个头文件。例如 < Foundation/Foundation.h >

⚠️Cocoa的函数将使用NS前缀

NS -> NextSTEP,1996年被苹果收购

四、%@ -> NSString , %s -> String

五、 结构体赋值

typedef struct { int a , b , c; } St; //赋值 St t1 = { 1,2,3 };

六、@interface

传递给编译器有关该类的信息(数据成员)

七、@implement

可在@implement定义没有在@interface中声明的方法,作为仅在类中使用的私有方法⚠️调用含有参数的方法时,eg: [firstClass returnInt: 3] ,方法将3作为self参数自动传递:self->param = 3;

八、继承调度方式

当代码发送消息时,oc的方法调度程序在当前类搜索响应的方法,否则搜索超类。

九、Xcode快捷键

代码块左右移动 command+[ or ]打开/关闭补全代码 esc

十、NS Array

⚠️两个限制: 只能存储oc对象,不能存储c语言中的基本数据类型(如 int / float/enum/struct)不能存储nil( nil作为结束标志 )快速枚举:

for (NSString *str in array) { NSLog(@”%@”,str); }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表