错误:Int不可转换为NSRange

时间:2015-07-17 17:50:50

标签: ios swift nspredicate nsrange

我收到了错误:

  

int不能转换为NSRange

on var range:NSrange = 0

   let predicate = NSPredicate(block: { (city: AnyObject!, b: [NSObject : AnyObject]!) -> Bool in
            var range:NSRange = 0;  //convert error happens here on 0
            if city is NSString {
                range = city.rangeOfString(searchBarText, options: NSStringCompareOptions.CaseInsensitiveSearch)
            }

            return range.location != NSNotFound
        })

关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:3)

你的init声明错了。 NSRange是一个locationrange值的结构。将其更改为:

var range = NSMakeRange(NSNotFound, 0)

答案 1 :(得分:1)

NSRangestruct,成员locationlength,而不是Int

使用初始化程序

var range: NSRange = NSRange(location:0, length:0)

或便利功能

var range: NSRange = NSMakeRange(0, 0)