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)