当前位置 博文首页 > dengren1956的博客:【读书笔记】--《编写高质量iOS与OS X代码的

    dengren1956的博客:【读书笔记】--《编写高质量iOS与OS X代码的

    作者:[db:作者] 时间:2021-09-20 16:27

      1、Objective-C 起源:

      在 C 语言基础上添加了面向对象特性,是 C 语言的超集。Objective-C 由 SmallTalk 语言演变过来,使用消息结构,运行环境由运行环境决定。

      OC 对象所占内存总是分配在堆空间,绝不会在栈空间分配内存。不含 * 的变量,保存的不是OC对象,可能使用栈空间。  

      2、在类的头文件中,应尽量少引用其他头文件:

      在编译一个使用其他类的头文件(.h文件)时,如果不需要知道那个类的实现细节,可以使用 @class ***; 即可。在实现文件中(.m),需要知道要引入类实现细节时,可使用 #import "***"。

      * 除非确有必要,否则不要引入头文件。一般来说,在一个类文件中使用向前声明来提及别的类,并在实现文件中引入那些类的头文件,这样可以降低类之间的耦合;

      * 有时无法使用向前声明,比如声明某个类?遵循某一协议。此时,尽量把“该类遵循某协议”这条声明移至“class-continuation”分类中,如果不行的话,就把协议单独放一个头文件中。

      3、多用字面量语法,少用与之等价的方法:

      例如:

    NSString *str = @"Hello";
    //    NSString *str1 = [NSString ];
        
        NSNumber *num = @2;
        NSNumber *num1 = [NSNumber numberWithInt:1];
        
        NSArray *arr = @[@"1", @"sds", @"sjo"];
        NSArray *arr1 = [NSArray arrayWithObjects:@"1", @"sds", @"sjo", nil];
        
        NSDictionary *dic = @{
                              @"key1":@"value1",
                              @"key2":@"value2",
                              @"key3":@"value3"
                              };
        NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"key1", @"value1", @"key2", @"value2",@"key3", @"value3", nil];
      推荐使用 str,num,arr,dic 方式。
    cs