2016-11-06 22 views
6

Tôi nhận được lỗi này dường như cảnh báo tôi về các tệp trùng lặp. Tôi thiếu một cái gì đó hoặc Xcode bây giờ không yêu cầu tạo phân lớp nsmanaged để hoạt động trên dữ liệu cốt lõi. Tôi đã thử tạo một dự án trống và điều tương tự cũng xảy ra. Đây là dữ liệu lỗiLỗi khi tạo Lớp con NSManaged trong Xcode 8.2 beta

<unknown>:0: error: filename "Card+CoreDataClass.swift" used twice: '/Users/user/Documents/Developer/coredata/Card+CoreDataClass.swift' and '/Users/user/Library/Developer/Xcode/DerivedData/coredata-gicbdltjgiidbcfxaqqaxvkqwnnk/Build/Intermediates/coredata.build/Debug-iphonesimulator/coredata.build/DerivedSources/CoreDataGenerated/coredata/Card+CoreDataClass.swift' 
<unknown>:0: note: filenames are used to distinguish private declarations with the same name 
<unknown>:0: error: filename "Card+CoreDataProperties.swift" used twice: '/Users/user/Documents/Developer/coredata/Card+CoreDataProperties.swift' and '/Users/user/Library/Developer/Xcode/DerivedData/coredata-gicbdltjgiidbcfxaqqaxvkqwnnk/Build/Intermediates/coredata.build/Debug-iphonesimulator/coredata.build/DerivedSources/CoreDataGenerated/coredata/Card+CoreDataProperties.swift' 
<unknown>:0: note: filenames are used to distinguish private declarations with the same name 
Command /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1 

Điều này ngụ ý rằng các tệp đã được tạo tự động. Tôi thậm chí có thể tạo một đối tượng Thẻ mà không cần tạo các lớp con theo cách thủ công. Cảm ơn.

+1

Kiểm tra: http://stackoverflow.com/a/40357746/1457385 và có thể http://stackoverflow.com/a/39933534/1457385 – shallowThought

+0

Tôi đã kiểm tra cả hai, đã thử và vẫn gặp lỗi . Bây giờ tôi đã tạo một ứng dụng mà không tạo các lớp con và nó hoạt động. Vì vậy, tôi đoán họ đang thực hiện các lớp con coredata tự động bây giờ? – user3739902

+0

Tùy thuộc vào cài đặt của bạn. Nó được giải thích chi tiết trong các câu trả lời được đề cập. Bạn cũng có thể muốn xem video WWDC "Có gì mới trong Dữ liệu chính": https://developer.apple.com/videos/play/wwdc2016/242/ – shallowThought

Trả lời

7

Vấn đề ở đây là của Xcode 8, các dự án mới sử dụng dữ liệu lõi và mô hình dữ liệu lõi mới được cấu hình để sử dụng tạo mã tự động theo mặc định. Điều đó có nghĩa là bạn không phải tạo mã một cách rõ ràng cho các thực thể Core Data của mình nữa, Xcode sẽ xử lý điều đó cho bạn. Nếu bạn để tạo mã tự động trên cũng manaully tạo các lớp Swift cho các thực thể của mình, bạn sẽ thấy lỗi như thế này.

Bạn có thể tắt tạo mã tự động cho một thực thể trong trình kiểm tra đối tượng hoặc bạn có thể xóa mã được tạo theo cách thủ công khỏi dự án của mình. Một trong hai người nên sửa lỗi này.

1

Thử xóa dữ liệu có nguồn gốc của bạn qua Xcode> Tùy chọn> Vị trí> mũi tên nhỏ màu xám> di chuyển nội dung vào thùng rác. Sau đó làm sạch dự án và xây dựng lại.

+0

Hey, cảm ơn bạn đã trả lời, điều đó không giải quyết được vấn đề, nó vẫn tạo ra lỗi tương tự. – user3739902

+0

Nếu bạn đi đến giai đoạn xây dựng của dự án, dưới nguồn được biên dịch, tệp có được liệt kê ở đó hai lần không? – Aaron

+0

Không, chỉ một lần thôi. Nhưng điều kỳ lạ là tôi có thể khởi tạo đối tượng Thẻ ngay cả khi tôi không tạo các lớp con. – user3739902

1

Lần đầu tiên bạn dự đoán rằng bạn chưa nhập tệp này Card+CoreDataProperties hai lần, đồng thời kiểm tra rằng bạn chưa tạo lớp này Card+CoreDataProperties hai lần trong suốt dự án của mình.

+0

Đã làm tất cả điều đó, vẫn không hoạt động. – user3739902

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