我在Objective-C到Swift代码更改期间遇到错误。感谢
func combinedName() -> String? {
let range: NSRange = name.range(of: brand)
if Int(range.length) > 0 {
return name
}
return "\(brand) \(name)"
}
我的Objective-C代码
- (NSString *)combinedName {
NSRange range = [self.name rangeOfString:self.brand];
if (range.length > 0) return self.name;
return [NSString stringWithFormat:@"%@ %@", self.brand, self.name];
}
答案 0 :(得分:2)
不要直接翻译Objective-C代码。使用普通的Swift结构从头开始编写Swift代码。
func combinedName() -> String {
if name.range(of: brand) != nil {
return name
} else {
return "\(brand) \(name)"
}
}
假设name
和brand
都不是可选的,则返回类型不应是可选的,因为在任何情况下都不会返回nil
。
您还可以使用?:
:
func combinedName() -> String {
return name.range(of: brand) != nil ? name : "\(brand) \(name)"
}