使用struct over class会影响允许的数据大小吗?

时间:2019-07-07 08:17:37

标签: ios swift

目前,我正在设计一个记笔记应用程序。

它的整体用法应该是

class Note {
    var title: String?
    var body: String?
}

var notes = [Note]() 
notes.append(Note())

我很想将Note设计为struct

struct Note {
    var title: String?
    var body: String?
}

var notes = [Note]() 
notes.append(Note())

但是,我也担心这可能会对

施加限制
  1. 每个Note实例的最大允许大小。因为这不常见,因为Note的字符串体有> 10MB
  2. 注释数组struct的最大允许数组大小

据我所知,struct的实例是在堆栈内存中创建的,而class的实例是在堆内存中创建的。堆栈内存大小比堆内存大小小得多-Is the stack size of iPhone fixed?

使用struct over class会影响允许的数据大小吗?

1 个答案:

答案 0 :(得分:1)

总之,不是。

结构与类,结构或类的数组的最大大小没有区别。

此外,正如Martin在评论中所说,您的struct / class实际上包含字符串的 pointers ,而不是字符串本身。因此,结构和类都不会使用大小不同的字符串来更改大小。