OC-id、构造方法
- id
- 简介
- 万能指针,能指向任何OC对象,相当于NSObject *
- id类型的定义
typedef struct objc_object {
Class isa;
} *id;
- 使用
// 注意:id后面不要加上* id p = [Person new];
- 局限性
调用一个不存在的方法,编译器会马上报错
- 构造方法:---用来初始化对象的方法,是一个对象方法
- 对象创建原理
- new的拆分两部曲
- 分配内存(+alloc)
- 初始化(-init)
Person *p1 = [Person alloc]; Person *p1 = [p1 init];
合成一句后:
Person *p = [[Person alloc] init];
- init方法的重写
- 目的:为了让对象创建完毕后,成员变量马上就有一些默认的值
- init方法的重写过程
- 先初始化父类,后初始化子类
- 先调用父类的构造方法([super init])

- (id)init
{
if (self = [super init]) {
_age = 10;
}
return self;
}


自定义构造方法
- 构造方法的一些规范
- 返回值是id类型
- 方法名都以init开头

- (id)initWithAge:(int)age { if (self = [super init]) { _age = age;
}
return self;
}
传递多个参数进行初始化
- (id) initWithAge:(int)age andNo:(int)no;
.h和.m文件的抽取
- 每个类分布在不同文件中
- 类的声明放在.h文件,类的实现放在.m文件
- 若想使用某个类,就包含某个类的.h声明文件
OC-id、构造方法的更多相关文章
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
- OC语言构造方法
OC语言构造方法 一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法 ...
- 李洪强iOS开发之OC语言构造方法
OC语言构造方法 一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法 ...
- OC的构造方法与分类知识点总结
OC语言构造方法: 用来初始化对象的方法,对象方法,以减号开头 为了让对象创建出来,成员变量就会有一些固定的值 重写构造方法的注意点: 先调用父类的构造方法([super init]) 再进行子类内部 ...
- OC基础--构造方法 id类型
new方法实现原理: new做了三件事情 1.开辟存储空间 + alloc 方法 2.初始化所有的属性(成员变量) - init 方法 3.返回对象的地址 [Person new]; == [[Pe ...
- OC基础--构造方法
OC语言中类的构造方法学了两种: 一.方法一:[类名 new] 例:[Person new] 缺点:可扩展性不强,假如在Person类中有_age 成员变量,在初始化时想让_age 中的值为20,ne ...
- 「OC」构造方法和分类
一.构造方法 (一)构造方法的调用 创建一个可用的对象:Person *p=[Person new]; new方法实际上是分为两步来创建一个对象: 1)使用+alloc方法来分配存储空间(返回分配的对 ...
- OC id类型
id数据类型可存储任何类型的对象.从某种意义说,它是一般对象类型. -------------------------"NormalMan.h"------------------ ...
- objective-c 语法快速过(4)
oc 里的字符串 字符串的快速创建(最简单的方法) NSStirng *str = @“Hello”;//oc的字符串都是@“”形式的 oc的字符串也是类的对象,是NSString类的对象,创建没有那 ...
- 文顶顶iOS开发博客链接整理及部分项目源代码下载
文顶顶iOS开发博客链接整理及部分项目源代码下载 网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程 ...
随机推荐
- java-a实现压缩与解压缩(zip、gzip)
zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还 ...
- jquery获取多重input的方式
获取input的checked值是否为true: 第一种: if($("input[name=item][value='val']").attr('checked')==true) ...
- 如何让ie 7 支持box-shadow
box-shadow是一个很好用并且也常用的css 3属性,但是,如果我们要保证它能在ie 8及更低的版本下运行的话,需要借助一些其他的插件或文件.在这里我主要讲一下,如何用PIE.htc来解决ie ...
- js日历表
$scope.getCurrentWeek = function (day) { var days = ["星期日", "星期一", "星期二&quo ...
- JAVA基本类型的转换
1.String转成Int 例1: String str = "123"; try { int a = Integer.parseInt(str); } catch (Number ...
- 【BZOJ-1391】order 最小割 + 最大全闭合图
1391: [Ceoi2008]order Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1334 Solved: 405[Submit][Statu ...
- jquery插件-表单验证插件-rules
ruels方法 1说明:查看.新增.移除一个表单控件的验证规则 2使用: 表单控件.rules(); 参数: rules() 返回元素的验证规则 rules('add',rules) 增加验证规则 r ...
- BZOJ4720 [Noip2016]换教室
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- Linux inode && Fast Directory Travel Method(undone)
目录 . Linux inode简介 . Fast Directory Travel Method 1. Linux inode简介 0x1: 磁盘分割原理 字节 -> 扇区(sector)(每 ...
- CentOS找回root密码
如果忘记了root密码,可以进入单用户模式进行密码重置. 重启系统,在grub的启动菜单中按下e键,然后编辑kernel那一行,在最后的quiet后加上single. 按下Enter后,再按b开机进入 ...