import Foundation final class RDEPUBRuntimeChapter { let spineIndex: Int let href: String let title: String /// 原始富文本(可按策略释放,不强制常驻) var sourceAttributedString: NSAttributedString? /// 排版后富文本 let typesetAttributedString: NSAttributedString /// 排版器 let layouter: RDEPUBTextLayouter /// 页范围 let pageRanges: [NSRange] /// 页面数组 let pages: [RDEPUBTextPage] /// 章节偏移映射 let chapterOffsetMap: RDEPUBChapterOffsetMap init( spineIndex: Int, href: String, title: String, sourceAttributedString: NSAttributedString?, typesetAttributedString: NSAttributedString, layouter: RDEPUBTextLayouter, pageRanges: [NSRange], pages: [RDEPUBTextPage], chapterOffsetMap: RDEPUBChapterOffsetMap ) { self.spineIndex = spineIndex self.href = href self.title = title self.sourceAttributedString = sourceAttributedString self.typesetAttributedString = typesetAttributedString self.layouter = layouter self.pageRanges = pageRanges self.pages = pages self.chapterOffsetMap = chapterOffsetMap } /// 释放 sourceAttributedString 以降低内存 func releaseSourceText() { sourceAttributedString = nil } }