OC:

相同点:都可以将多个数据封装为一个整体。

不同点:
1. 结构体只能封装数据,而类还可以封装行为。
2. 赋值 :结构体是(拷贝),对象之间是(地址)
3. 结构体变量分配在栈空间(如果是一个局部变量的情况下),而对象分配在堆空间

栈空间特点:空间相对较小,但是存储在栈中的数据访问的效率稍高一点
堆空间特点:空间相对较大,但是存储在堆中的数据,效率低一些

应用场景:
1. 如果封装的这个数据,不仅有数据还有方法,只能使用类。
2. 如果表示实体,没有行为,光有属性:

如果属性较少,只有几个的情况下,就定义为结构体,分配在栈,提高运行效率。
如果属性较多,就不要定义为结构体,因为这样结构体变量会在栈中占据很大一块空间,范围影响效率。

https://blog.csdn.net/yi_zz32/article/details/48582339?locationNum=11&fps=1

swift:

共同点:

a.定义存储属性
b.定义函数
c.定义下标,使用下表访问自己的值
d.定义初始化设置自己的初始化状态
e.扩展自己的功能
f.实现协议提供某种特定的标准功能

不同点(类有更多功能):

a.类可以继承,结构体不能继承
b.类能够在运行时检查和解释类实例的类型
c.Deinitializers使一个类的实例来释放任何资源分配
d.类有引用计数,允许对象被多次引用

https://www.jianshu.com/p/51f99a352838

iOS(OC、swift) 结构体和类的区别相关推荐

  1. swift string转int_swift中结构体和类的区别(值类型和引用类型的区别)

    在swift中结构体和类有着更多的相同之处,在一般的使用中能够做到互相替换.我们可以先看看官方文档的描述: Unlike other programming languages, Swift does ...

  2. 【唐老狮】C#——结构体和类的区别

    [结构体和类的区别] 结构体是值类型,类是引用类型 结构体存在栈中,类存在堆中 结构体成员不能使用protected访问修饰符,而类可以 结构体成员变量申明不能指定初始值,而类可以 结构体不能申明无参 ...

  3. [C#]结构体和类的区别

    结构体和类的区别:     在做一个项目时,使用了较多的结构体,并且存在一些结构体的嵌套,即某结构体成员集合包含另一个结构体等,总是出现一些奇怪的错误,才终于下决心好好分析一下到底类和结构体有啥不同, ...

  4. 结构体和类的区别详细讲解

    结构体和类的区别 C的结构体和C++结构体的区别 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数.所以C的结构体是没有构造函数.析构函数.和this指针的. C的结构体对 ...

  5. C#中的结构体与类的区别

    转载自:https://www.cnblogs.com/to-creat/p/5268729.html C#中的结构体与类的区别 经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自 ...

  6. C#中结构体和类的区别

    结构体和类同样能够定义字段,方法和构造函数,都能实例化对象,这样看来结构体和类的功能好像是一样的了,但是他们在数据的存储上是不一样的 C#结构体和类的区别问题 这两种数据类型的本质区别主要是各自指向的 ...

  7. C语言结构体与C++中结构体和类的区别

    在C++中除了类中可以有构造函数和析构函数外,结构体中也可以包含构造函数和析构函数,这是因为结构体和类基本雷同,唯一区别是,类中成员变量默认为私有,而结构体中则为公有.注意,C++中的结构体是可以有析 ...

  8. C++中结构体与类的区别介绍

    在参与以C++为编程基础的项目应用中总会遇到结构体类型与类的数据类型,但是其具体应用区别模糊不清 现将其区别总结如下,欢迎补充共同学习(先介绍C和C++中结构体的不同,再对比C++中结构体与类的区别) ...

  9. Swift结构体与类

    在面向过程的编程语言(如C语言)中,结构体用得比较多,但是面向对象之后,如在C++和Objective-C中,结构体已经很少使用了.这是因为结构体能够做的事情,类完全可以取而代之. 而Swift语言却 ...

  10. 结构体和类的区别-Objective-C基础

    1 结构体 与类的相同点 都可以将多个数据封装为1个整体 struct Date{ int year; int month; int day; } @interface Date :NSObject ...

最新文章

  1. 量子计算和量子模拟研究获进展
  2. 朴素贝叶斯(NaiveBayes)算法总结
  3. 0409互联网新闻 | 微信:朋友圈广告@好友评论互动能力全量开放;视频会议软件Zoom将于4月18日在纳斯达克交易所挂牌上市...
  4. sqlplus中调用shell_记一次突破反弹shell
  5. 有了这个数据强一致“利器”,DBA们轻松修复数据对加班“say no”
  6. 《Cortex-M0权威指南》之Cortex-M0技术综述
  7. Eclipse利用正则表达式快速去掉注释的方法
  8. 使用js获取select选中文本
  9. Windows 10 安装 scrapy 步骤
  10. 【数据库】SQL语句大全
  11. 【HUSTOJ】1054: 字符图形10-字母三角
  12. sql面试题:问题1:查询每个同学的学生编号、学生姓名、选课总数...问题2:查询“张三”老师所授课程的学生中,成绩最高的学生信息...
  13. 一年增加1.2w星,它能否引领中间件的未来?
  14. android 系统重装,手机系统重装教程[多图]
  15. level2行情对炒股有什么帮助?
  16. 怎样设定目标(一)——目标金字塔
  17. 研究报告的数据都从哪里来?
  18. 关于研发规范化的一些实践和思考
  19. Novavax和武田宣布在日本合作Novavax的COVID-19候选疫苗
  20. 【自控原理要点】第1章 绪论

热门文章

  1. 视频直播点播平台EasyDSS如何通过接口实现文件合成?
  2. CP2102和CP2104的区别
  3. 阿里vod视频点播报错: com.aliyun.oss.common.utils.StringUtils
  4. 浙大计算机考研复试2019,浙江大学计算机学院2019考研复试时间地点通知
  5. 网络安全技术保障措施
  6. [二] Numpy数据存取与函数
  7. 最小二乘法拟合直线 C++/OpenCV
  8. 编写程序,解决鸡兔同笼问题:一个笼子里关着鸡和兔子。从上面数有35个头,从下面数有84只脚。问笼中各有多少只鸡和兔?
  9. 求问c币如何快速啊?
  10. 开辟新战场,打造新的商业模式