remember VS rememberSaveable
Jetpack Compose 中 remember 与 rememberSaveable 的差异:前者只在组合内保持状态,后者可跨进程/Activity 重建恢复。结合 Tab 切换导致 scale 被重置的案例说明原理与选型。
Jetpack Compose 中 remember 与 rememberSaveable 的差异:前者只在组合内保持状态,后者可跨进程/Activity 重建恢复。结合 Tab 切换导致 scale 被重置的案例说明原理与选型。
在 Kotlin Multiplatform 项目中实现 iOS 平台的文件存储时,出现如下情况:
.xcappdata 可以确认文件确实在 Documents 目录下,但用 NSData.dataWithContentsOfFile 读取时始终返回空。No such File or Directory(找不到该文件或目录)。当时使用的读取代码如下(为便于排查,增加了 errorPtr 输出错误信息):
val errorPtr: ObjCObjectVar<NSError?> = alloc()
NSData.dataWithContentsOfFile(fullPath, options = 0, error = errorPtr.ptr)?.let { bytes ->
val array = ByteArray(bytes.length.toInt())
bytes.getBytes(array.refTo(0).getPointer(this), bytes.length)
return@withContext array
}
println(errorPtr.value?.description.orEmpty())
return@withContext null