Swift 和 OC

Swift 中 ClassStruct 的区别

class struct
类型 引用类型 值类型
继承 支持继承 不支持继承
内存管理 存在堆上,需要使用引用计数来管理内存 存在栈上,自动管理内存
调用方法 修改内部属性值,不影响原始实例 修改内部属性值,影响原始实例
调用方法 实例调用方法,传递的是实例的指针 实例调用方法,将整个结构体实例拷贝给对方

枚举的区别

Swift OC
一等公民,可以拥有方法,成员,扩展等 非一等公民,只是整数
安全性 强类型,允许自定义类型 基于整数的,只是整数
关联性 可以带有关联值,可以关联具体的数据 不具有关联值
原始值 可以关联原始值,可以是浮点型,字符串等 不具有原始值
命名空间 枚举成员在枚举的命名空间内 枚举成员在全局命名空间内,可能导致命名冲突

Array 的区别

Swift OC
安全性 安全,只能包含一种类型 不安全,可以包含不同的类型
可变性 var 可变,let 不可变 NSArray 不可变,NSMutableArray 可变
类型 泛型的 只能包含 id 类型的对象
类型 struct class

注:struct 类型是值类型,可以在栈上分配内存,避免了引用计数的开销,提高性能。
class 类型是引用类型,可以在堆上分配内存,但是需要更复杂的内存管理,但是有助于处理对象的生命周期和共享。

posted @   dulinshun  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示