أنا أعمل على مشروع يستخدم كلاً من Objective-C (رمز قديم) و Swift (رمز أحدث وأي رمز تمت إضافته في المستقبل)
لقد قمت بإنشاء كيانين جديدين في نموذج CoreData ، دعنا نسميهما Folder and File. للمجلد علاقة بأطراف مع ملف.
فيما يلي كود ما ذكرته حتى الآن عن الفئات الفرعية التي تم إنشاؤها تلقائيًا:
@interface Folder (CoreDataProperties)
+ (NSFetchRequest<Folder *> *)fetchRequest;
....
@property (nullable, nonatomic, retain) NSSet<File *> *files;
....
@end
@interface File (CoreDataProperties)
+ (NSFetchRequest<File *> *)fetchRequest;
....
@property (nullable, nonatomic, retain) Folder *folder;
....
@end
أنا أتعامل مع سجل مجلد في ملف Swift الخاص بي وأحاول ببساطة تعيين خاصية لدي على صفحة أخرى ذات علاقة Folder.files.
هذه هي الخاصية في الصفحة الأخرى (Swift) التي أحاول تعيينها:
class FilesTableViewCell: UITableViewCell {
...
var filesArray: [File]? = []
...
}
لذا أحاول تعيين ملفات سجل المجلد المعيّن على تلك الخاصية:
//some other Swift file
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
...
let cell = tableView.dequeueReusableCell(withIdentifier: FilesTableViewCellIdentifier) as! FilesTableViewCell
let currentFolder = folderArray.last
cell.filesArray = currentFolder?.files
// the line does not work I get a "Cannot assign value of type 'Set<File>?' to type '[File]?'" error
return cell
....
حتى عندما أضيف "(Array)" إلى مقدمة "currentFolder؟ .files" ، ما زلت أحصل على الخطأ التالي:
"Cannot assign value of type '(Array<_>).Type' to type '[File]?'"
أنا لست من ذوي الخبرة في Swift ، لذا يمكن لأي شخص مساعدتي في فهم سبب عدم نجاح ذلك والحل المحتمل؟ (في هذه المرحلة ، سأضطر فقط إلى جلب البيانات الأساسية لجميع ملفات المجلد تلك ، لكنني أفضل ألا أكون غير فعال إذا لم يكن علي ذلك)