Tôi đang bắt đầu học Swift, và đã theo dõi các bài giảng video rất hay của Đại học Stanford trên YouTube. Đây là một liên kết nếu bạn quan tâm hoặc nó giúp (mặc dù không bắt buộc phải hiểu vấn đề của tôi):
Phát triển ứng dụng iOS 8 với Swift - 2. Thêm Xcode và Swift, MVC
Trong khi theo các bài giảng, tôi đã đến một điểm mà (theo như tôi có thể nói) mã của tôi giống hệt với mã trong video nhưng trên hệ thống của tôi, tôi đã gặp lỗi trình biên dịch. Sau rất nhiều thử nghiệm và lỗi, tôi đã cố gắng giảm mã của mình xuống còn hai ví dụ, một trong số đó tạo ra lỗi, cái kia hoặc không, nhưng tôi không biết điều gì thực sự gây ra lỗi hoặc cách khắc phục.
Mã tạo ra lỗi là:
import UIKit
class BugViewController: UIViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Điều này tạo ra lỗi trình biên dịch sau:
Phương thức 'thực hiện' với bộ chọn Objective-C 'thực hiện:' xung đột với khai báo trước đó với cùng bộ chọn Objective-C
Bằng cách đơn giản loại bỏ phân lớp phụ của UIViewControll, mã biên dịch:
import UIKit
class BugViewController
{
func perform(operation: (Double) -> Double) {
}
func perform(operation: (Double, Double) -> Double) {
}
}
Một số thông tin khác có thể có hoặc không có liên quan:
- Gần đây tôi đã nâng cấp lên Yosemite.
- Khi tôi cài đặt Xcode, tôi đã kết thúc phiên bản Beta (Phiên bản 6.3 (6D543q)) bởi vì (nếu tôi nhớ chính xác) đây là phiên bản tôi cần để chạy trên phiên bản OS X của mình.
Tôi một nửa hy vọng đây là một lỗi trong trình biên dịch bởi vì nếu không thì điều này không có ý nghĩa gì với tôi. Bất kỳ trợ giúp rất biết ơn nhận được!