2016-07-19 16 views
11

Hiện nay, tôi đã sử dụng XCode 8 và trên dòng'advancedBy' không có sẵn trong Xcode 8

let range = key.startIndex...key.startIndex.advancedBy(0) 

tôi nhận được lỗi:

error: 'advancedBy' is unavailable: To advance an index by n steps call 'index(_:offsetBy:)' on the CharacterView instance that produced the index.

Làm thế nào tôi có thể sửa lỗi này?

Một ảnh chụp màn hình của lỗi này là dưới đây:

advancedBy is unavailable

+1

Vui lòng gửi kèm mã của bạn trong câu hỏi cũng như các ảnh chụp màn hình. – Paulw11

+1

Bạn cần sử dụng chỉ mục offsetBy http://stackoverflow.com/a/38215613/2303865 –

+0

Xem https://github.com/apple/swift-evolution/blob/master/proposals/0065-collections-move-indices. md – HAS

Trả lời

0

Bạn có thể đạt được những gì bạn đang sau đơn giản hơn bằng cách xây dựng một chuỗi mới chứ không phải là thao tác cũ:

let upperCasedFirstCharacter = String(key.characters.first!).uppercased() 

let remainder = key.substring(from: key.characters.index(after: key.characters.startIndex)) 

let selector = "set\(upperCasedFirstCharacter)\(remainder)" 
18

advancedBy(_:) đã không được chấp nhận trong Swift v3 và được thay thế bằng index(_:offsetBy:). Tham khảo migration guide của Apple để biết thêm thông tin.

Giải pháp cho lỗi lầm của mình:

let range = key.startIndex...key.index(key.startIndex, offsetBy: 0) 
Các vấn đề liên quan