编写高质量代码读后感

编写高质量代码读后感_第1张图片

第一章

1.运行时语言:在编译的时候不能直接编译成机器可读的语言,而是在运行时(runtime)把程序编译成机器可读的语言。OC就是一门动态语言、c++为静态语言

2.尽量减少头文件的引用,这样可以提高编译速度

3.尽量少使用#define

正确
static NSString *const Name = @"CF";
static const CGFloat Height = 1.80;
错误
#define Name @"CF"
#define Height = 1.80

5.返回值不确定时使用instancetype 而不是用id

第五章

33.在一个类中也可以创建不同的类,这样可以免去创建类似的类,而是用一个类,在类的里面再去常见其他的类即可。
***.h文件 ***

#import 

@interface Catagory : NSObject

@property (nonatomic,copy) NSString *ss;
-(void)eat;

@end



@interface CatagoryOne : NSObject

@property (nonatomic,copy) NSString *oneName;
-(void)eat;

@end



@interface CatagoryTwo : NSObject

@property (nonatomic,copy) NSString *twoName;
-(void)eat;

@end

.m文件

#import "Catagory.h"

@implementation Catagory

-(void)eat{
    NSLog(@"Catagory eat");
}

@end


@implementation CatagoryOne

-(void)eat{
    NSLog(@"CatagoryOne eat");
}

@end


@implementation CatagoryTwo

-(void)eat{
    NSLog(@"CatagoryTwo eat");
}

@end

只需要引用一个#import "Catagory.h"里面的CatagoryOne 和 CatagoryTwo 就都可以使用了
注意这样的优点是把有同样逻辑和功能的类放在一起,不需要再去单独的拆分,如果两个类的逻辑并不一样,那么久不要放在一起。

34.在我们获取一个对象的时候,可以先进行一些判断,例如这个对象确认是某个类,或者是否是有值的,之后再去进行一些操作,这样可以提高代码的健壮性,不会以为拿到的类,类型不对崩溃,会因为以为有值,实际是没有值的崩溃问题。

36.一个对象调用new方法的时候,做了两步操作,第一步:创建对象的内存,第二步:调用对象的init方法

38.block代码块里面使用self会出现循环引用无法释放的问题, 应该在block之前改成弱引用

_weak ClassName *weakself = self;

39.OC中所有对象之间的交互都是通过指针来改变的。

40.当一个对象至nil时,如果没有其他对象强引用就会被释放。

第六章

41.在OC中每个对象都隐藏着一个数据结构指针isa指针。在OC中每个对象都保留一个超类指针,通过该指针可以调度自己已有的方法和调度基类。

注:没有写的建议,个人认为是老的,或者是大家都知道,所有没有提及,只写了个人认为要注意的。
小伙伴们如果认为还有其他要注意的,请留言,我会添加上去。

你可能感兴趣的:(编写高质量代码读后感)