##区别:
1.结构体只能封装属性,类却不仅可以封装属性也可以封装方法,如果及需要封装属性有需要封装方法的话,就只能是类了。
2.结构体变量属于值类型,分配在栈上,而OC对象分配在堆,栈的控件相对于对来说是比较小的,但是存储在栈上的数据访问效率比堆上的数据快很多。
3.如果定义一个结构体,这个结构体有很多的属性,那么这个是有就要选择使用类来处理,在栈中占用太多的空间会降低效率;
3.结构体赋值是值类型,而对象是指针地址的赋值。
swift中区别
1.类是引用类型,结构体是值类型,值类型的传递和赋值时时复制操作,而引用类型则只会使用引用对象的一个指向,引用类型公用一块内存空间,而值类型是使用不同的内存空间;
2.类的特点
- 类可以集成,这样子类可以使用父类的特性和方法;
- 可以使用deinit来释放资源;
- 类可以被多次引用
3.结构体的特点
- 结构体较小,适用于复制操作,相比类的实例被多次引用更加安全,不会占用栈上更多的资源;
- 结构体,是现成安全的,无需担心内存memory leak或者多线程冲突;