- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
id类型
在Objective-C 中,id 类型是一个独特的数据类型。在概念上,类
似Java 的Object 类,可以转换为任何数据类型。换句话说,id 类
型的变量可以存放任何数据类型的对象。在内部处理上,这种类型
被定义为指向对象的指针,实际上是一个指向这种对象的实例变量
的指针。例如,下面定义了一个id类型的变量和返回一个id类型的方
法:
1. id anObject;
2. - (id) newObject: (int) type;
id 和void *并非完全一样。下面是id在objc.h 中的定义:
1. typedef struct objc_object {
2. Class isa;
3. } *id;
从上面看出,id 是指向struct objc_object 的一个指针。也就是说,
id 是一个指向任何一个继承了Object (或者NSObject)类的对象。
需要注意的是id 是一个指针,所以在使用id的时候不需要加星号,
比如,
1. id foo=nil;
上述语句定义了一个nil 指针,这个指针指向NSObject 的任意一个
子类。而“id*foo=nil;”则定义了一个指针,这个指针指向另一个指
针,被指向的这个指针指向NSObject的一个子类。
在Objective-C中,id取代了int类型成为默认的数据类型(在C语言
中,int是默认的函数返回值类型),关键字nil 被定义为空对象,也
就是值为0 的对象。关于 的Objective-C基本类型,读者可以参
考obj/objc.h文件。
下面举一个应用id 类型的例子。例子中定义了两个不同的类(一个
是学生类Student ,一个是会员类Member),这两个类拥有不同的
成员变量和方法。
【例2-10】id类型应用。
学生类头文件Student.h的代码如下:
1. #import Foundation /Foundation.h
2. @interface Student : NSObject {
3. int sid;
4. NSString *name;
5. }
6. @property int sid;
7. @property (nonatomic,retain) NSString *name;
8. - (void) print;
9. - (void) setSid: (int) sid andName: (NSString
*) name;
10. @end
学生类实现文件Student.m的代码如下:
1. #import Student.h
2. @implementation Student
3. @synthesize sid,name;
4. - (void) print{
5. NSLog (@我的学号是:%i,我的名字
是:%@,sid,name) ;
6. }
7. - (void) setSid: (int) sid1 andName: (NSStrin
g*) name1{
8. self.sid = sid1;
9. self.name = name1;
10. }
11. @end
成员类头文件Member.h的代码如下:
1. #import Foundation /Foundation.h
2. @interface Member : NSObject {
3. NSString *name;
4. int age;
5. }
6. @property (nonatomic,retain) NSString *name;
7. @property int age;
8. - (void) print;
9. - (void) setName: (NSString*) name1 andAge: (
int) age1;
10. @end
成员类实现文件Member.m的代码如下:
1. #import Member.h
2. @implementation Member
3. @syn
您可能关注的文档
最近下载
- 2024-2025学年北京海淀区三上期末数学试卷及答案.pdf VIP
- 国家开放大学(电大)《社会统计学》期末考试复习试题及答案解析.docx VIP
- 八年级数学上册专题14.6 因式分解的应用(压轴题专项讲练)(人教版)(原卷版).docx VIP
- 硬笔楷书笔画.ppt VIP
- 北师大版七年级数学寒假班讲义(基础班).pdf VIP
- 2025年垃圾发电厂数字化升级研究.docx VIP
- 儿童慢性鼻窦炎的诊断和治疗中国专家共识(杭州2024).pptx VIP
- 辽宁初中数学中考考点.docx VIP
- 人呼吸道合胞病毒下呼吸道感染治疗及预防指南(2024版).pptx VIP
- 静设备基础知识.pptx
原创力文档


文档评论(0)