2014-10-07 14 views
6

Trong mảng Swift có một hành vi đặc biệt, nhưng tại sao ở đây arr1 chứa hai lần "mục 1" trong khi arr2 chỉ chứa một lần?Hành vi mảng nhanh

Điều gì định nghĩa arr1 là biến thể hiện thay đổi ở đây (so với xác định arr2 dưới dạng biến cục bộ)?

Cập nhật: Tôi đang sử dụng Xcode 6.0.1

enter image description here

+0

Yup. Tôi đã nhận được kết quả tương tự trong Xcode Phiên bản 6.0.1 (6A317): | Tôi phải nói đó là một lỗi? – ytbryan

+0

@ytbryan Tôi đang sử dụng cùng phiên bản Xcode như bạn. –

+0

yah. Hình như đặt cược tốt nhất của bạn là biến nó trở thành biến cục bộ. Tham khảo Câu trả lời một phầnKhông xác định. Hoặc sử dụng Xcode GM. – ytbryan

Trả lời

2

tôi có thể mô phỏng kết quả này đáng tin cậy trong Xcode 6.0.1:

Xcode 6.0.1

Nhưng không phải trong Xcode 6.1 GM :

Xcode 6.1

Có vẻ như đó là một lỗi đã được sửa.

Là một workaround tạm, công trình này trong Xcode 6.0.1:

Workaround

+1

Ok, vì vậy tôi không phải là người duy nhất :-) cảm ơn các bạn, các lỗi Swift và Xcode đang khiến tôi phát điên ... –

+0

@ thomas.g Tôi đã từ bỏ việc sử dụng nó trong khoảng thời gian tôi cố gắng sử dụng các API objc rằng các bộ chọn phương thức cần thiết, ngay sau khi từ bỏ không thể giải mã các quy tắc ghi đè khởi tạo. Cá nhân, tôi không nghĩ rằng nó có giá trị đau của các lỗi liên tục, không cần thiết và hạn chế vô nghĩa, và đôi khi cú pháp khó sử dụng/không rõ ràng, chỉ để có được cải thiện hiệu suất ~ 1.5x trên objc, cung cấp cho bạn toàn bộ sức mạnh của hiệu suất của C bất cứ khi nào bạn cần. – Greg

+0

Tôi bắt đầu cảm thấy như vậy. Nhưng chẳng mấy chốc tôi phải đào tạo về phát triển iOS với Swift nên không có lựa chọn nào khác ... nhưng tôi phải nói rằng tôi hơi lo lắng ;-) Ít nhất thì đối với tôi Xcode/Sân chơi dường như ít gặp hơn vì nó không phải là một phiên bản beta nữa ... –