【发布时间】:2019-11-17 02:42:55
【问题描述】:
目前,我正在设计一个笔记应用程序。
它的整体用法应该是
class Note {
var title: String?
var body: String?
}
var notes = [Note]()
notes.append(Note())
我很想将 Note 设计为结构体
struct Note {
var title: String?
var body: String?
}
var notes = [Note]()
notes.append(Note())
但是,我也担心这可能会限制
- 每个 Note 实例的最大允许大小。因为,这并不常见,因为 Note 的字符串体有 >10MB
- Array of Note 结构的最大允许数组大小
据我所知,struct 的实例是在堆栈内存中创建的,而类的实例是在堆内存中创建的。堆栈内存大小远小于堆内存大小 - Is the stack size of iPhone fixed?
在类上使用结构,会影响允许的数据大小吗?
【问题讨论】:
-
正如an answer 中对您上一个问题所指出的那样,String 和 Array 是 固定大小的结构,带有指向包含实际字符或数组元素的堆分配内存的指针。所以
struct Note的大小是固定的,与字符串中存储的字符数无关。