var cachedFrames = ArraySlice<Image<RGBA<UInt8>>>
としてキャッシュしておけば、 (edited)cachedFrames[frameIndex]
で簡単にアクセスできる。if cachedFrames.count > maxNumberOfCachedFrames { cachedFrames.removeFirst() }
みたいにして簡単に古いキャッシュを消せるしif cachedFrames.indices.contains(frameIndex) { ... }
みたいにキャッシュが存在するときの処理も簡単に書ける。(cachedFrames.startIndex ..< cachedFrames.endIndex).contains(frameIndex)
にすれば O(1) ) (edited)