Objective-C语法基础

这篇博客详细介绍了Objective-C的语法基础,包括点语法的本质、成员变量的作用域、@property和@synthesize的使用、id类型的特点、构造方法、Xcode模板的修改、分类的应用、类的深入研究以及description方法和SEL的基本用法。内容涵盖从对象创建到运行时机制的多个方面。
摘要由CSDN通过智能技术生成

一、点语法本质

  • “点语法”本质是“方法调用”
  • 当使用“点语法”时,编译器会自动展开称相应的方法
  • id类型的对象不能用 点语法

复制代码

1 //方法调用
2 Student *stu = [[Student alloc] init]; 
3 [stu setAge:10]; 
4 int age = [stu age];
5 //-----------------------------我是华丽分割线-----------------------------
6 //点语法 
7 stu.age = 10; 
8 int age = stu.age;

复制代码

  

 


二、成员变量的作用域

  • @public : 在任何地方都能直接访问对象的成员变量
  • @private : 只能在当前类的对象方法中直接访问 ( @implementation 中默认是 @private )
  • @protected  : 可以在当前类及其字累的对象方法中直接访问 (默认就是 @protected )
  • @package : 只要处在同一个框架中,就能直接访问对象的成员变量
  • @interface 和 @implementation 中不能声明同名的成员变量
  • 没有 @interface ,只有 @implementation ,也可以开发同一个类

 


三、@property 和 @synthesize 、setter 和 getter 及使用细节

  • @property 用在 @interface 中,用来自动生成 setter 和 getter 声明
  • @synthesize 永在 @implementation 中,用来生成 setter 和 getter 实现
  • @synthesize 细节:1> @synthesize age = _age;(setter 和 getter 实现中会访问成员变量 _age,如果成员变量 _age 不存在,就会自动生成一个 @private 的成员变量 _age 
    •       2> @synthesize age;(setter 和 getter 实现中会访问成员变量 age,如果成员变量 age 不存在,就会自动生成一个 @private 的成员变量 age)
    •       3> 若手动实现了 setter 方法,编译器就只会自动生成 getter 方法
  • 自从 Xcode4.4 后,@property 就独揽了 @sy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值