I find this weird. I am trying to use String.format in my shared module code in a Kotlin Multiplatform setup. It cannot find the format function and does not autocomplete in Android Studio. But it is working fine in the androidMain module.
IIRC, format needs platform localization info. KMP does not directly support localization. That function is available for the JVM (or Android) code.
You'll need to do some kind of expect/actual, or find some kind of library that does this, although I don't know of any off-hand.
You can use NSString.stringWithFormat for Ios. Example:
Common:
expect fun formatTime(seconds: Long): String
Android:
actual fun formatTime(seconds: Long): String {
val minutes = java.util.concurrent.TimeUnit.SECONDS.toMinutes(seconds)
val remainingSeconds = seconds % 60
return String.format("%02d:%02d", minutes, remainingSeconds)
}
Ios:
import platform.Foundation.NSString
import platform.Foundation.stringWithFormat
actual fun formatTime(seconds: Long): String {
val minutes = seconds / 60
val remainingSeconds = seconds % 60
return NSString.stringWithFormat("%02d:%02d", minutes, remainingSeconds)
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With