gpt4 book ai didi

objective-c - 如何自动装箱原始文字?

转载 作者:行者123 更新时间:2023-11-28 06:30:55 25 4
gpt4 key购买 nike

以前在 Objective-C 中,我可以这样做:

NSInteger count = 100;
NSString *text = [NSString stringWithFormat:@"count: %@", @(count)];

Objective-C 引入了自动装箱原始文字的概念,因此我不必处理 %d%ld 等。它会自动转换将原始文字转换为 NSObject,格式化程序将其解析为 %@

在 swift 中,我们可以做类似的事情吗?

let count: Int = 100
let text = String.init(format: "count of %@", count)

上面的崩溃是因为 count 不是指向对象的指针。

我知道我可以像这样进行内联参数注入(inject):

let text = "count of \(count)"

但由于本地化的目的,需要在更新参数之前对字符串格式进行本地化,而上面的代码无法做到这一点。

最佳答案

使用基础类型和桥接到NSNumber

let count1: NSNumber = 100 // 100
let count2: NSNumber = 0.0 // 0
let count3: NSNumber = 2.73 // 2.73
let text = String(format: "count of %@ %@ %@", count1, count2, count3) // "count of 100 0 2.73"

这确实是“自动装箱”所做的,它将基本类型包装在 Objective-C NSNumber 对象中。

关于objective-c - 如何自动装箱原始文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40366579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com