如何实现文本动态复数化?现有代码无法转换「Max Attendee」单复数
问题解决:SwiftUI中根据数量实现名词单复数转换
你遇到的问题是因为屈折语法使用格式错误——把变量插值放在了屈折标记内部,导致系统无法正确关联数量来转换单复数。
正确写法
将需要屈折的名词单独放在^[]标记中,数量变量放在外部,示例代码:
Text("Max ^[Attendee](inflect: true) \(currentContacts)")
原理说明
SwiftUI的字符串屈折功能会根据后面插值的数字(currentContacts)自动判断单复数:
- 当
currentContacts为1时,显示「Max Attendee 1」 - 当数字为0、2、3等非1值时,自动转为复数「Max Attendees X」
验证效果
运行后会得到你预期的结果:
Max Attendees 0 Max Attendee 1 Max Attendees 2 Max Attendees 3
内容的提问来源于stack exchange,提问作者Mayur Shirsale
相关产品推荐
相关产品推荐

