D&JのZONE

知之者不如好之者,好之者不如乐之者

随着 Jetpack Compose 的普及,它在 Android 开发中的应用越来越广泛。对于移动端开发者来说,性能优化始终是关键问题。Jetpack Compose 通过重组(Recomposition)更新 UI,因此避免不必要的重组是基本的优化手段之一。remember {} 和 rememberSaveable {} 都能帮助组件跳过重组,但它们的作用机制有所不同。

阅读全文 »

问题背景及描述

在Kotlin Multiplatform项目中,实现iOS平台的文件存储时,虽然可以通过导出.xcappdata文件确认文件确实存在于目录下,但在调用NSData.dataWithContentsOfFile读取时却始终返回空。错误信息显示找不到该文件或目录 (No such File or Directory)。

示例代码如下:

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

Note: 为了更好地定位问题,添加了errorPtr以查看具体错误信息

阅读全文 »
0%