2017-08-28 24 views
9

Làm thế nào tôi có thể cập nhật các mã sau vào phiên bản mới của nhanh chóng:'substring (để :)' bị phản đối: Vui lòng sử dụng chuỗi cắt subscript với 'phạm vi một phần tối đa' hành

self.areaCodeLael.text! = localNumber.substring(to: localNumber.index(localNumber.startIndex, offsetBy: 3)) 

Tôi đã cố gắng sau bài này nhưng tôi không thể làm cho nó đúng How can I use String slicing subscripts in Swift 4?

tôi điều chỉnh mã ban đầu của tôi để localNumber[..<3] nhưng tôi nhận được:

không thể subscript một giá trị kiểu 'string 'có chỉ mục loại' PartialRangeUpTo '

+1

Cập nhật câu hỏi của bạn cho biết cách bạn cố gắng sử dụng thông tin trong câu hỏi được liên kết. – rmaddy

+2

Không liên quan nhưng tại sao bạn đặt toán tử '!' Ngay trước '='? Loại bỏ điều đó. – rmaddy

Trả lời

15

Tôi có thể nói localNumber.prefix(3) trong trường hợp này. Ngắn và ngọt.

+0

Tôi đã thử nhưng tiền tố là một định danh chưa được giải quyết localNumber.String (tiền tố (3)) – user1079052

+0

Tôi đã nhận được nó để làm việc, cảm ơn bạn cho các gợi ý String (localNumber.characters.prefix (3)) – user1079052

+2

@ user1079052 Không, bạn muốn ' Chuỗi (localNumber.prefix (3)) '. – rmaddy

5

Sự cố với nỗ lực sử dụng localNumber[..<3] của bạn là bạn không thể chuyển số Int làm phạm vi. Bạn cần phải vượt qua một String.Index.

Mã của bạn cần phải được:

let index = localNumber.index(localNumber.startIndex, offsetBy: 3) 
self.areaCodeLael.text = localNumber[..<index] 

Cũng lưu ý rằng bạn không muốn các nhà điều hành ! sau text.

+0

Tôi nhận được "_Cannot subscript một giá trị của loại 'String' với một chỉ số của loại 'PartialRangeUpTo ' _" –

+0

Oh, tôi giải quyết nó bằng cách gói kết quả subscript với 'String (…)', như 'String (localNumber [..

Các vấn đề liên quan