---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
一、XCode帮助文档找到了下载的方法,
菜单栏Xcode->Preferences选择Documentation,在线下载
二 set和get方法的使用
因为如果成员变量被定义为@public,那么就可以被任意赋值,而没有声明@public,又要管理成员的访问,就要使用set方法和get方法.
1.set方法用来设置成员变量,get方法用来访问成员变量,返回成员变量的值,实际情况中可根据是否需要修改成员变量的值来使用set方法,是否需要获取变量的值使用get方法.
2.set方法与get方法的命名规范:
set方法以set开头,而且后面跟上成员变量名,成员变量首字母必须大写.
get方法与成员变量同名;
成员变量的命名规范:都以下划线_开头,可以与get方法区分开,可以与其他局部变量区分开.
代码:
#import <Foundation/Foundation.h>
// 声明
@interface Car : NSObject
{
int _wheels; // 轮子个数
}
/*set方法*/
- (void) setWheels:(int)wheels;
/*get方法*/
- (int) wheels;
@end
@implementation Car
// set方法的实现
- (void) setWheels:(int)wheels
{
// 对外面传进来的轮子数进行过滤
if (wheels<=0)
{
wheels = 1;
}
_wheels = wheels;
}
// get方法的实现
- (int) wheels
{
return _wheels;
}
set方法和get方法的使用,保证了程序的封装性,
而封装的好处是: 过滤不合理的值,屏蔽内部的赋值过程,让外界不必关注内部的细节。
三、类方法
类方法就是利用类名直接执行的方法,以+号开头。
与对象方法的区别:
1.以加号开头,而对象方法以-号开头;
2.只能用类名调用(所以要继承NS0bject);
3.类方法不能访问成员变量,对象方法可以;
4.使用场合:不需要访问成员变量的时候,尽量使用类方法。
另外类方法与对象方法不是一个类型,所以可以同名。
四、self关键字、
self类似于java中的this关键字,在OC中没有this关键字,利用self可以调用调用当前的变量或方法。
self->成员变量名 访问的是当前方法调用的成员变量,
[self 方法名] 调用相应的方法(类的调用类的,对象的调用对象的)。self代表着当前方法的调用者。
self在类方法中的调用
@implementation Student
+ (void)test2 {
}
+ (void)test3 {
[Student test2];
[self test2];
}
@end
self在对象方法的调用
@implementation Student
- (void)test2 {
}
- (void)test3 {
[self test2];
}
@end
五、点语法的应用
传统的set/get方法,较为繁琐,OC中提供了点语法来等价于set/get方法,
Student *stu = [Student new];
[stu setAge:100];
int age = [stu age];
利用点语法
stu.age=100;
int age = stu.age;
编译器会自动将点语法的方法展开为相应的set/get方法。
六、@property与@synthesize来替换set/get方法
@property用在.h文件@interface内,可以实现set/get的声明。
@synthesize在.m文件@implementation中实现set/get的实现
@propertyintage( 等价于
- (int)age; // getter
- (void)setAge:(int)age; // setter
@synthesizeage = _age等价于- (int)age{
return_age;
}
- (void)setAge:(int)age{
_age= age;
}
//1.注意 @synthesize age = _age; 如果变量age不存在,会自动生成一个@private的成员变量_age//2.Xcode4之后,@property包括了@synthesize的功能,以后只要在.h文件中声明@property就可以完全替换setter和getter。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------