oc 结构体(结构体和类的区别)

返回上级目录:swift,oc语法(苹果文档)和对比

代码示例

#import "ViewController.h"

typedef struct point {
    
    
    int x;
    int y;
} origin;

struct objc {
    
    
    int i;
    NSString *str;
    UIViewController *control;
    origin myPoint;
};
typedef struct objc my;


@interface ViewController ()

@property my test;

@end

@implementation ViewController

- (void)viewDidLoad {
    
    
    [super viewDidLoad];
    
    struct point myOrigin = (origin){
    
    3,4};
    
    struct objc obj = (my){
    
    1,@"2",self};
    obj.i = 2;
    NSLog(@"%@",obj.str); //@"2"
    self.test = obj;
    
    self.test.myPoint = myOrigin;
    //    _test.myPoint = myOrigin;  这段代码是不会有任何报错的
}

@end

在这里插入图片描述

对象中的结构体属性中的属性是不允许作单独修改的

在这里插入图片描述

解决办法:
在这里插入图片描述

结构体和类的区别

1.类可以添加方法
2.结构体在栈区,类在堆区
3.结构体是值类型,类是引用类型
4.类可以继承
参考:
oc中 结构体与类的区别

参考博客:

iOS - OC Struct 结构体

浅谈 OC 与结构体

猜你喜欢

转载自blog.csdn.net/baidu_40537062/article/details/108455230