结构体和类的区别

2018-06-27  本文已影响0人  程序萌

一、定义一个结构体

typedef struct {
    int age;
    //在结构体中定义OC对象会报错:ARC forbids Objective-C objects in structs 
    //需要添加__unsafe_unretained
   __unsafe_unretained NSString * name;
} LYMStruct;

二、使用

LYMStruct myStruct = {22,@"张三"};
// 两种赋值方法
// myStruct.age = 22;
// myStruct.name = @"张三";
 NSLog(@"%@-- %d",myStruct.name,myStruct.age);

三、结构体和OC类的区别

结构体:

OC类:

四、如何选择结构体还是OC类

  • 因为栈空间相对堆来说比较小,但是数据访问效率比堆要高,所以我们定义很多属性的话,在堆中使用OC类
  • 如果不需要定义很多的属性,并且不需要定义方法的话,我们在栈中使用结构体
上一篇下一篇

猜你喜欢

热点阅读