self、nil、id用法专题总结
来源:互联网 发布:数据科学学报 编辑:程序博客网 时间:2024/06/01 18:25
self、nil、id用法专题总结
id的用法,举个简单例子,很容易就理解和掌握了。例:#import <Cocoa/Cocoa.h>
#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
self用法详解,专题总结!
objective-c语言中的self,就相当于C++中的this指针。
学会使用self,首先要搞清楚属性这一概念。
以及理解getter和setter方法,它到底有什么用?
设置器与访问器,提供外界操作 类内部属性的 一个通道。假如,没有这个方法,外界怎么操作类的内部属性。假如不提供这两个方法,那么这个属性的值,就不能为外界所改变。
因为类的属性,一般是private 。属性一般是私有的。
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调用方法,而不致导致程序崩溃或抛出异常
- self、nil、id用法专题总结
- self,@property用法总结
- self.xxx = nil
- 总结self, parent的用法
- self.navigationcontroller是nil吗?
- id、nil代表什么?
- id、nil代表什么?
- iphone关于self.用法的一些总结
- 关于self.用法的一些总结
- iphone关于self.用法的一些总结
- 关于self.用法的一些总结
- 关于 self.用法的一些总结
- 关于self.用法的一些总结
- IOS开发self.的用法总结
- 关于self.用法的一些总结
- 关于self.用法的一些总结
- 关于self.用法的一些总结
- 总结一些Objective-C的self.用法
- c# ftp 目录下载
- Android Bitmap和Canvas学习笔记
- 【Cortex-M0】19.1 详解startup_M051.s
- How to port Ubuntu 11.10 to Beagleboard 怎样移植Ubuntu 11.10 到BeagleBoard
- 一份宁静
- self、nil、id用法专题总结
- 伪造源IP地址的DoS攻击
- 通过 AppDomain 的 ShadowCopying 功能实现 Assembly 的动态替换
- 【Cortex-M0】19.2 LIB的生成与使用
- 【Cortex-M0】19.3 Hex文件
- 悉数微软Windows帝国幕后10大关键人物(图)
- 内核中的Makefile与Kconfig(1)
- 每个程序员都应该阅读的书籍
- 【Cortex-M0】19.4功耗控制