Otomatik Oluşturulan Sınıflar için Çözüm
Xcode'un Kod Oluşturucusundan (ios 10 ve üzeri)
"Sınıfınız" adlı bir Varlık oluşturursanız, Xcode otomatik olarak "Sınıf Tanımı" nı varsayılan olarak "Veri Modeli Denetçisi" nde bir Codegen türü seçecektir. bu, aşağıdaki sınıfları oluşturacaktır:
Swift versiyonu:
// YourClass+CoreDataClass.swift
@objc(YourClass)
public class YourClass: NSManagedObject {
}
Objective-C sürümü:
// YourClass+CoreDataClass.h
@interface YourClass : NSManagedObject
@end
#import "YourClass+CoreDataProperties.h"
// YourClass+CoreDataClass.m
#import "YourClass+CoreDataClass.h"
@implementation YourClass
@end
Xcode'da "Sınıf Tanımı" yerine Codegen seçeneğinden "Kategori / Uzantı" yı seçeceğiz.
Şimdi, bir enum eklemek istiyorsak, gidip otomatik olarak oluşturulan sınıfınız için başka bir uzantı oluşturun ve aşağıdaki gibi enum tanımlarınızı buraya ekleyin:
// YourClass+Extension.h
#import "YourClass+CoreDataClass.h" // That was the trick for me!
@interface YourClass (Extension)
@end
// YourClass+Extension.m
#import "YourClass+Extension.h"
@implementation YourClass (Extension)
typedef NS_ENUM(int16_t, YourEnumType) {
YourEnumTypeStarted,
YourEnumTypeDone,
YourEnumTypePaused,
YourEnumTypeInternetConnectionError,
YourEnumTypeFailed
};
@end
Şimdi, değerleri bir numaralandırmayla sınırlamak istiyorsanız özel erişimciler oluşturabilirsiniz. Lütfen soru sahibinin kabul ettiği cevabı kontrol edin . Veya, aşağıda olduğu gibi döküm operatörünü kullanarak açık bir şekilde dönüştürme yöntemiyle ayarlarken numaralandırmalarınızı dönüştürebilirsiniz:
model.yourEnumProperty = (int16_t)YourEnumTypeStarted;
Ayrıca kontrol edin
Xcode otomatik alt sınıf oluşturma
Xcode artık modelleme aracında NSManagedObject alt sınıflarının otomatik olarak oluşturulmasını desteklemektedir. Varlık denetçisinde:
Manuel / Hiçbiri varsayılan ve önceki davranıştır; bu durumda, kendi alt sınıfınızı uygulamalı veya NSManagedObject kullanmalısınız. Kategori / Uzantı, ClassName + CoreDataGeneratedProperties gibi adlı bir dosyada bir sınıf uzantısı oluşturur. Ana sınıfı bildirmeniz / uygulamanız gerekir (Obj-C'de ise, bir başlık aracılığıyla uzantı ClassName.h adlı dosyayı içe aktarabilir). Sınıf Tanımı, ClassName + CoreDataClass gibi alt sınıf dosyalarının yanı sıra Kategori / Uzantı için oluşturulan dosyaları da oluşturur. Oluşturulan dosyalar DerivedData içine yerleştirilir ve model kaydedildikten sonra ilk derlemede yeniden oluşturulur. Ayrıca Xcode tarafından indekslenirler, bu nedenle referanslara komut tıklamak ve dosya adına göre hızlı açmak çalışır.
enum
s olmasın ?