程序员iOS Developer

OC 基本语法1

2017-03-30  本文已影响42人  朱Younger

OC语言主要用于Mac OS 、iOS、watchTv 等应用软件的开发,成熟应用于市场多年。在这里趁着工作之余整理一下,与广大开发朋友共勉,多有不正之处,请不吝啬高见指导一二。
在这里首先给讲一下OC的语法调用。

首先初始化一个类,大家最常的:

1、[] 中括号法

Student *stu = [Student new];
[stu setAge:99];
int age = [stu age];

2、"." 点语法

stu.age = 99;
int age = stu.age;

其实细心的朋友已经观察到,这就是类属性的setter 和 getter 方法,其实点语法的本质还是方法调用,使用点方法的时候,会自动展开我 []形式的方法调用。

局部变量、成员变量、全局变量都有自己的作用域:

/**   
局部变量:
栈区 
函数或代码块中 
函数{}内 
先定义后初始化、同时定义初始化都可以    
系统自动释放

成员变量(属性、实例变量) :   
堆区  
类的声明中定义@interface @end 和{}之间     
不可定义的时候就初始化
通过类对象访问,离开类不能单独存在  
程序员手动释放
    
全局变量:
静态区  
函数的外部   
从定义文件末尾   
可以先定义后初始化,也可以定义的同时初始化   
程序启动分配空间,程序结束释放
**/

属性作用域的修饰

@private://只能在当前类的对象方法中直接访问
@protected://可以在当前类以及子类的对象方法中直接访问
@public://任何地方都可以直接访问
@package:同一个“体系内”(框架)可以访问,介于@private和@public之间 

属性声明

在@interface @end 中声明属性

@property int age ;
//等同于添加一个实例变量一个 getter 和一个 setter 方法(个人觉得这是OC中比较人性化的一点) 
_age;
- (int) age;
- (void) setAge: (int) age;
//这里提一下 老版的@synthesize  同样也是用来生成 geter、setter 方法 在 xcode4.X 后基本不用了,被 @property 替代
//用法如下:
在 @implementation 中
@synthesize age = _age;

对象创建的原理

Student *stu = [Sudent new];
/*New -> 分两步 
1、alloc 分配内存
2、init 初始化
所以
 Student *stu = [Student alloc] init];
等同于
Student *stu = [Stuent alloc];
stu = [stu init]; 
*/

开发中的需求。传入参数构造对象,就和Java 语言中的构造方法一样

//OC 重写 init 方法  
// 注意点, 方法以init开头  传参数 赋值
- (id)initWithAge:(int)age {
    if (self = [super init]) {
        _age = age;
    }
    return self;
}

上一篇 下一篇

猜你喜欢

热点阅读