D&JのZONE

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

随着Jetpack Compose发布之后,它出现在Android开发者视野中越来越频繁,而作为一个移动端开发者,性能上的考虑一直放在很重要的位置。Jetpack Compose中的组件是通过重组刷新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%