
·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> Objective-C基础核心语法-总结
一、点语法本质
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;
二、成员变量的作用域
三、@property 和 @synthesize 、setter 和 getter 及使用细节
1 //--[interface.h]---Xcode4.2之前的语法---------------我是华丽分割线--------
2 @property int age; //@property
3 //--[interface.h]--------⬆️等价于⬇️--------
4 - (void)setAge;
5 - (int)age;
6
7 //--[implementation.m]-------------------------------我是华丽分割线--------
8 @synthesize int age = _age; //@synthesize
9 //--[implementation.m]---⬆️等价于⬇️--------
10 - (void)setAge {
11 _age = age;
12 }
13 - (int)age {
14 return _age;
15 }
16 //--[implementation.m]-------------------------------我是华丽分割线--------
17 @synthesize int age; //@synthesize
18 //--[implementation.m]---⬆️等价于⬇️--------
19 - (void)setAge {
20 _age = age;
21 }
22 - (int)age {
23 return age;
24 }
25
26 //--[interface.h]---Xcode4.4之后有了以下新语法-------我是华丽分割线-------
27 @property int age; //@property
28 //--[interface.h]---------⬆️等价于⬇️-------
29 @interface Student:NSObject{
30 int _age;
31 }
32 - (void)setAge;
33 - (int)age;
34 //--[implementation.m]---------------------
35 - (void)setAge {
36 _age = age;
37 }
38 - (int)age {
39 return _age;
40 }
四、id
1 typedef struct objc_object {
2 Class isa; //每个对象都有一个isa,且isa始终指向当前类本身
3 } *id; // id 定义为一个结构指针
五、构造方法(基本概念、重写 init 方法、init 方法的执行过程、自定义)
1 //------NSObject------------
2 - (id)init {
3 isa = [self class];
4 return slef;
5 }
六、更改 Xcode 模版(main.m 、注释)
七、分类(基本使用、使用注意、给 NSString 增加类方法及扩充对象方法)
八、类的深入研究(本质、类对象的使用、类的加载和初始化)
1 Student *stu = [[Student alloc] init]; 2 Class stu1 = [stu class]; //利用Class创建Student类对象,[stu class]是获取内存中的类对象 3 Class stu2 = [Student class]; //stu1的地址等于stu2的地址,都是stu的地址
1 + (void)load {
2 //程序一启动,所有的类都调用这个加载方法
3 }
1 + (void)initialize {
2 //第一次使用类的时候([[类 alloc]init]),就会调用一次这个方法。我们可以在这里监听类何时被使用
3 }
九、description 方法
1 - (NSSting *)description {
2 // NSLog(@"%@",self); //这行代码会引发死循环
3 return [NSString stringWithFormat:@"age=%d, name=%@", _age, _name];
4 }
十、NSLog 输出补充
1 int main() {
2 NSLog(@"%d",__LINE__); //输出当前行号(即 2 )
3 //NSLog(@"%s",__FILE__); //NSLog输出 C 语言字符串的时候,不能有中文
4 printf(@"%s\n",__FILE__); //输出源文件的名称(含路径)
5 NSLog(@"%s\n",__func__); //输出当前函数名(即 main )
6 }
十一、SEL (基本用法及其他使用)
1 int main() {
2 Student *stu = [[Student alloc] init];
3 [stu test];
4 [stu performSelector:@selector(test)]; //间接调用test方法,@selector(test)就是一个SEL类型
5 [stu performSelector:@selector(test1:) withObject:@"123"]; //间接调用test:方法,@selector(test:)就是一个SEL类型
6 }
1 NSString *name = @"test"; 2 SEL s = NSSelectorFromSrting(name) //将test方法包装成SEL数据 3 [stu performSelector:s];
1 - (void)test {
2 NSString *str = NSStingWithSelector(_cmd);
3 NSLog(@"调用了test方法---%@",str); //显示:调用了test方法---test
4 }