Objective-C语法学习归纳
2016-07-05 22:07
351 查看
self关键字
类似java中的this,防止局部变量将成员变量覆盖、冲突//使用方法 -(void) setAge:(int)age { self->age = age; } -(int)age { return self->age; }
self 调用方法: [self 方法名];
self调用方法时要注意避免调用自己,否则造成死循环。
点语法
除了get和set的调用,oc中提供了另一种可以实现get、set的调用语法,称为点语法。它的本质就是get、set。当使用点语法获取值当时候,系统调用相关的get方法,//Student.h #import <Foundation/Foundation.h> @interface Students : NSObject { @private int _age; } -(int) age; - (void) setAge:(int)age; @end //Student.m #import "Students.h" @implementation Students -(void) setAge:(int)age { self->_age = age; } -(int) age { NSLog(@"age = %d",_age); return self->_age; } @end //main #import <Foundation/Foundation.h> #import "Students.h" int main(int argc, const char * argv[]) { @autoreleasepool { Students *stu = [[Students alloc]init]; stu.age=18; <span style="font-family: Arial, Helvetica, sans-serif;">//等同于 [stu setAge:18];</span>
int age =stu.age; <span style="font-family: Arial, Helvetica, sans-serif;">//等同于 int age = [stu age];</span>
} return 0; }
若在set、get中使用点语法,会造成循环引用。
属性
oc定义成员变量时,先对其进行封装,之后提供ge、set提供外界访问操作,但其过于繁琐,增大工作量,为此,oc提供了属性,可以替代set、get方法。属性对声明: 以关键字@property开头,它可以出现在一个类的@interface代码部分的方法声明列表中的任何位置。
语法格式: @property(特性1,特性2……) 变量类型 变量名;
括号中的特性是可选的, 它是对属性行为的描述。
示例: @property int age;
等同于:
{ @private int _age; } -(int) age; - (void) setAge:(int)age;
description 方法
类似于java中的toString。若要用NSLog打印对象,需要重写description方法。 否则只会答应出对象的内存地址。相关文章推荐
- c语言全局变量和局部变量问题及解决汇总
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- sqlserver 局部变量的使用
- 全局变量与局部变量在内存中的区别详细解析
- 关于全局变量和局部变量的那些事
- javascript中局部变量和全局变量的区别详解
- javascript 用局部变量来代替全局变量第1/2页
- 浅谈JavaScript的全局变量与局部变量
- c++静态局部变量和静态函数示例
- Objective-C的内省(Introspection)用法小结
- JS全局变量和局部变量最新解析
- awk实现Left、join查询、去除重复值以及局部变量讲解例子
- phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
- Android中的全局变量与局部变量使用小结
- Android中的全局变量与局部变量使用小结
- 探讨:程序在内存中的分配(常量,局部变量,全局变量,程序代码)问题
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中使用NSString类操作字符串的方法小结
- Objective-C中NSNumber与NSDictionary的用法简介
- Objective-C实现冒泡排序算法的简单示例