- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
objective-c self、nil、id用法专题总结.doc
self、nil、id用法专题总结 #import Converter.h
@interface Controller : NSObject {
IBOutlet id converter;
IBOutlet id dollarField;
IBOutlet id rateField;
IBOutlet id totalField;
}
-(IBAction)convert:(id)sender;
@end
另外再举一个例子。
@interface MyController:NSObject{
IBOutlet id textField;//插座变量通常使用id关键字动态地指定类型。您可将id关键字用作任何对象的类型,意味这个对象的类在运行环境中才确定。
// IBOutlet NSTextField *textField;// 当您不需要动态类型对象时,应该静态地指定插座变量为指向对象的指针。
}
@end
haoxue 2011-04-10 23:03
self用法详解,专题总结!
objective-c语言中的self,就相当于C++中的this指针。
学会使用self,首先要搞清楚属性这一概念。
以及理解getter和setter方法,它到底有什么用?
设置器与访问器,提供外界操作 类内部属性的 一个通道。假如,没有这个方法,外界怎么操作类的内部属性。假如不提供这两个方法,那么这个属性的值,就不能为外界所改变。
因为类的属性,一般是private 。属性一般是私有的。
haoxue 2011-04-10 23:12
nil用法
Objective-C中nil
nil
nil和C语言的NULL相同,在objc/objc.h中定义。nil表示一个Objctive-C对象,这个对象的指针指向空(没有东西就是空)。
Nil
首字母大写的Nil和nil有一点不一样,Nil定义一个指向空的类(是Class,而不是对象)。
在Objective-C里,nil对象被设计来跟NULL空指针关联的。他们的区别就是nil是一个对象,而NULL只是一个值。而且我们对于nil调用方法,不会产生crash或者抛出异常。
这个技术被framework通过多种不同的方式使用。最主要的就是我们现在在调用方法之前根本无须去检查这个对象是否是nil。假如我们调了nil对象的一个有返回值的方法,那么我们会得到一个nil返回值。
我们可以通过nil对象让我们的dealloc函数实现看上去更帅一点:
- (void) dealloc
{
self.caption = nil;
self.photographer = nil;
[super dealloc];
}
之所以可以这么做是因为我们给把nil对象设给了一个成员变量,setter就会retain nil对象(当然了这个时候nil对象啥事情也不会做)然后release旧的对象。这个方式来释放对象其实更好,因为这样做的话,成员变量连指向随机数据的机会都没有,而通过别的方式,出现指向随机数据的情形机会不可避免。注意到我们调用的self.VAR这样的语法,这表示我们正在用setter,而且不会引起任何内存问题。
在Objective-C中,你来对象在功能上等价于其他很多语言中的NULL指针。区别是可以对nil调用方法,而不致导致程序崩溃或抛出异常。
lucyboy 2011-04-10 23:12
。。。。。。这个还需要总结么。。。。。。。
haoxue 2011-04-11 11:14
@property替你自动生成了set和get方法,虽然方便,但隐藏了很多细节。有必要讲解下。
头文件定义
NSButton *example.
- (NSButton *) example;
- (void) setExample:(NSButton *) newButton;
实现文件
- (NSButton *) example{
return example;
}
- (void) setExample:(NSButton *) newButton
{
if(example != newButton)
{
[example release];
example = [newButton retain];
}
}
这个就是编译器为我们自动生成的类似方法。
haoxue 2011-04-11 12:00
如何判断NSMutableArray里面为nil或者什么的值?
nil 是数组结尾标志,不能作为数组元素,NS
本人在医药行业摸爬滚打10年,做过实验室QC,仪器公司售后技术支持工程师,擅长解答实验室仪器问题,现为一家制药企业仪器管理。
文档评论(0)