JC

不以物喜,不以己悲

An unobtrusive programmer.


一个低调的iOS程序猿

Swift-enum,struct,class

enum: Swift中的枚举是为一组有限种可能性的相关值提供的通用类型(在C/C++/Objective-C中,枚举是一个被命名的整型常数的集合);使用枚举可以类型安全并且有提示性地操作这些值。 struct: 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体是一种值类型的数据结构,在Swift中常常使用结构体封装一些属性甚至是方法来组成新的复杂类型,目的是简化运算。

  • 枚举、结构体、类的共同点: 1,定义属性和方法; 2,下标语法访问值; 3,初始化器; 4,支持扩展增加功能; 5,可以遵循协议;
  • 类特有的功能: 1,继承; 2,允许类型转换; 3,析构方法释放资源; 4,引用计数;
  • 类是引用类型 引用类型(reference types,通常是类)被复制的时候其实复制的是一份引用,两份引用指向同一个对象。所以在修改一个实例的数据时副本的数据也被修改了(s1、s2)。
  • 枚举,结构体是值类型 值类型(value types)的每一个实例都有一份属于自己的数据,在复制时修改一个实例的数据并不影响副本的数据。值类型和引用类型是这三兄弟最本质的区别。

ps:

  • 什么时候该用值类型: 要用==运算符来比较实例的数据时 你希望那个实例的拷贝能保持独立的状态时 数据会被多个线程使用时
  • 什么时候该用引用类型(class): 要用==运算符来比较实例身份的时候 你希望有创建一个共享的、可变对象的时候
最近的文章

Library not loaded

错误解决:dyld: Library not loaded: @rpath/解决方法: 退出 Xcode 重启电脑 找到 这个 DerivedData 文件夹 删除 (路径: ~/Library/Developer/Xcode/DerivedData) 删除这个 com.apple.dt.Xcode 文件 (路径: ~/Library/Caches/com.apple.dt.Xcode)然后 在运行 Xcode 就好了~~…

iOS继续阅读
更早的文章

博客分享

看看iOS大神们的博客吧:王巍http://onevcat.com/破船之家http://beyondvincent.com/NSHipsterhttp://nshipster.cn/Limboy 无网不剩http://limboy.me唐巧的技术博客http://blog.devtang.com/Lex iOS noteshttp://ios.lextang.com/念茜的博客http://nianxi.net/Xcode Devhttp://blog.xcodev.com/Ted’s ...…

iOS继续阅读