小编Bas*_*ien的帖子

无法使用类型为"(Range <String.Index>)"的参数列表调用类型"Range <_>"的初始值设定项

从Xcode 10开始,我Cannot invoke initializer for type 'Range<_>' with an argument list of type '(Range<String.Index>)'在下面的代码中的返回行收到一条错误消息,这是一个用于在需要时获取子字符串的扩展.

我找到了另一个很好的答案Martin R在[ 无法使用类型'(Range <String.Index>)'的参数列表调用类型'Range <String.Index>'的初始值设定项,但是还没有找到方法解决我的问题.

谢谢你的帮助.

extension String {
    subscript (i: Int) -> Character { return self[index(startIndex, offsetBy: i)] }
    subscript (i: Int) -> String { return String(self[i] as Character) }
        subscript (r: Range<Int>) -> String {
        let start = index(startIndex, offsetBy: r.lowerBound)
        let end = index(startIndex, offsetBy: r.upperBound)

        return String(self[Range(start ..< end)])
    }
}
Run Code Online (Sandbox Code Playgroud)

}

range swift4 xcode10

5
推荐指数
0
解决办法
865
查看次数

How to reload a view controller when back from another view using tab bar

I have a common view used when the user opens the app (VC1). With a tab bar controller, I load another view (VC2) that can be used to update data visible in the previous one. When I go back on VC1 (which is stack), it does not reload with updated data.

I have tried to call the viewDidLoad in the viewWillAppear like so...

override func viewWillAppear(_ animated: Bool) {
    viewDidLoad()
}
Run Code Online (Sandbox Code Playgroud)

It works, but it loads over the VC1 still …

uitabbarcontroller uiviewcontroller loadview ios swift

2
推荐指数
1
解决办法
6495
查看次数