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 与结构体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值