Objective C 2.0 简明教程 (5) 属性(Property)
Objective C 2.0 简明教程 (5) 属性(Property)
作者:Administrator
周六, 2009年 03月 28日 07:47
Objective C 2.0 为我们提供了property。它大大简化了我们创建数据成员读写函数的过程,更为关键的是它提供了一种更为简洁,易于理解的方式来访问数据成员。
我们先来看一下在Objective C 1.x下我们声明Book类的头文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//
// Book.h
#import <Cocoa/Cocoa.h>
@interface Book : NSObject {
NSString *title;
NSNumber* numofpages;
}
- (id)initWithTitle:(NSString*) booktitle andNumofpages:(NSNumber*) num;
- (NSString*) title;
- (void) setTitle:(NSString*)newtitle;
- (NSNumber*) numofpages;
- (void) setNumofpages:(NSNumber*)newnumofpages;
- (NSString*) summary;
@end
在Objective C 2.0下,我们可以通过声明与数据成员同名的property来省去读写函数的声明。代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//
// Book.h
#import <Cocoa/Cocoa.h>
@interface Book : NSObject {
NSString *title;
NSNumber* numofpages;
}
- (id)initWithTitle:(NSString*) booktitle andNumofpages:(NSNumber*) num;
@property (retain) NSString* title;
@property (retain) NSNumber* numofpages;
@property (readonly) NSString* summary;
@end
我们为每一个数据成员声明了一个property。即使Book类中没有summary这个数据成员,我们同样可以声明一个名为summary的property。声明property的语法为:
@property (参数) 类型 名字;
这里的参数主要分为三类:读写属性(readwrite/readonly),setter语意(assign/retain/copy)以及atomicity(nonatomic)。
assign/retain/copy决定了以何种方式对数据成员赋予新值。我们在声明summary propery时使用了readonly,说明客户端只能对该property进行读取。atomicity的默认值是atomic,读取函数为原子操作。
下面我们来看一下在Objective C 1.x 下implementation文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
相关文档:
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/&nbs ......
C中的#号不仅是#include,#define等的关键字首使用而已,#在宏中还有很多用法。具体请看下面我来举例
1.双#号的宏用法。
我相信双##号的用法应该大部分人都见过吧,主要是用来连接宏变量名使用,在GCC参考手册中这样记载。
可用于宏内部将两个源代码权标连接成一个的连接指示字,可用来构造不会被解析器错误解释的名字。 ......
数组赋值我总结一下吧也就三种,那char的来举例:
定义的时候直接赋值.
1:char a[20] = "Hello World!";
2: char a[20];
strcpy(a, "Hello World!");
3:char a[20] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!'};
常见错误赋值方式:
1:char a[20];
a = "Hello World ......
C库函数
字符串函数
函数名
函数原型
功能
返回值
包含头文件
strcat
char *strcat(char *st1, char *str2)
把str2连接到str1后面
str1
string.h
strchr
char *strchr(char *str, int ch)
找出str指向的字符串中第一次出现字符串ch的位置
指向该位置的指针,未找到则返回空指针
......
Windows C 程序设计入门与提高
http://download.chinaitlab.com/program/files/13246.html
单片机C语言入门
http://download.chinaitlab.com/program/files/12907.html
C++ 入门基础教程
http://download.chinaitlab.com/program/files/7617.html
C语言常用算法源代码
http://download.chinaitlab.com/program/files ......