gpt4 book ai didi

objective-c - stringByReplacingOccurrencesOfString 不起作用?

转载 作者:可可西里 更新时间:2023-10-31 23:56:09 27 4
gpt4 key购买 nike

我正在尝试翻译这段 Objective-C 代码:

if ([[self.appStoreCountry stringByReplacingOccurrencesOfString:@"[A-Za-z]{2}" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, 2)] length])

所以我试着写了这段代码:

if !self.appStoreCountry.stringByReplacingOccurrencesOfString("[A-Za-z]{2}", withString: "", options: NSStringCompareOptions.RegularExpressionSearch, range: Range(start: 0, end: 2)).isEmpty

问题是 stringByReplacingOccurrencesOfString 部分似乎没有返回字符串。我收到来自 xcode 的错误消息:Cannot convert the expression's type 'Bool' to type 'String'.

我做了更多调查并尝试了:

let replaced = self.appStoreCountry.stringByReplacingOccurrencesOfString("[A-Za-z]{2}", withString: "", options: NSStringCompareOptions.RegularExpressionSearch, range: Range(start: 0, end: 2))

错误消息类似但更奇怪:无法将表达式的类型“String”转换为类型“String”。

我是不是做错了什么或者我应该向 Apple 提交错误?

最佳答案

请记住,Foundation 的类型与 Swift 的类型不同。 Swift 中的 String 不是 NSStringRange 也不是 NSRange。这确实有效:

let country = self.appStoreCountry // if self.appStoreCountry is an NSString
let country: NSString = self.appStoreCountry // if self.appStoreCountry is a Swift string

let replaced = country.stringByReplacingOccurrencesOfString("[A-Za-z]{2}", withString: "", options: .RegularExpressionSearch, range: NSMakeRange(0, 2))

另请注意 .RegularExpressionSearch 的简写符号,这使得在 Swift 中使用枚举更容易一些。

关于objective-c - stringByReplacingOccurrencesOfString 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24042144/

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