Xcode 无法调用'=';具有类型为(@lvalue Bool,($T5))的参数列表

Xcode 无法调用'=';具有类型为(@lvalue Bool,($T5))的参数列表,xcode,swift,nsstring,nsrange,Xcode,Swift,Nsstring,Nsrange,标题是我在编译此代码段@line3时收到的错误消息: var categoryMatch = (scope == "All") || (candy.category == scope) var stringMatch = candy.name.rangeOfString(searchText) return categoryMatch && (stringMatch != nil); 这里有什么问题 谢谢我猜函数的返回类型不仅仅是Bool categoryMatch&(stri

标题是我在编译此代码段@line3时收到的错误消息:

var categoryMatch = (scope == "All") || (candy.category == scope)
var stringMatch = candy.name.rangeOfString(searchText)
return categoryMatch && (stringMatch != nil);
这里有什么问题


谢谢

我猜函数的返回类型不仅仅是
Bool

categoryMatch&(stringMatch!=nil)
创建布尔值

可能您的函数返回类型是
(Bool,Bool)
的元组。 那么正确的返回值应该是

return (categoryMatch , (stringMatch != nil))

问题是
rangeOfString:
返回的
NSRange
不能等于
nil
。而不是检查
NSRange
location
属性

您需要更改您的返回语句,如:

return categoryMatch && (stringMatch.location != NSNotFound)
参考资料: