Для постоянной Я предпочитаю использовать .h файл как этот
// ConstanteDef.h
#pragma mark Entity Name Constante
#define kItemInfos @"ItemInfos"
#define kCategorie_DItems @"Categorie_DItems"
#define kCommerce @"Commerce"
#define kListe @"Liste"
#define kListeItem @"ListeItem"
#define kPrixElement @"PrixElement"
#define kTypeDe_CommerceOuListe @"TypeDe_CommerceOuListe"
В то время как я хотел бы использовать Singleton, чтобы вернуть мне более сложный элемент.
Вот один сингл, который я сделал, чтобы упростить свою жизнь с помощью основных данных, вместо того, чтобы переписывать один и тот же код везде.
@interface CoreDataController : NSObject {
NSManagedObjectContext *leManagedObjectContext;
NSManagedObjectModel *leManagedObjectModel;
@private
Commerce_MO *leCommerceAucun;
}
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
#pragma mark Objet par Défaut
@property (nonatomic, retain, readonly) Commerce_MO *commerceAucun;
#pragma mark Nouvel Objet
// new = retain count = 1, celui qui commande est responsable de la mémoire.
- (id)newMOforClass:(Class)uneClasse; // Pas le mieux, mais pourrais servir pendant le run time. Retourne nil si uneClasse ne correspond pas à quelque chose.
- (PrixElement_MO *)newPrixElement;
- (ItemInfos_MO *)newItemInfos;
- (Commerce_MO *)newCommerce;
- (Liste_MO *)newListe;
- (ListeItem_MO *)newListeItem;
#pragma mark Singleton call
+ (CoreDataController *)sharedCoreDataController;
@end
Так что в моем коде, когда мне нужно создать новый объект Мне просто нужно, чтобы сделать это:
CoreDataController *cdc = [CoreDataController sharedCoreDataController];
Liste_MO * = [cdc newListe];
Более подробную информацию о концепции Singleton, Посмотрите HERE в документации компании Apple в разделе Creating a Singleton Instance
, и внимательно посмотрите на код, который они дают, чтобы сделать синглтон, который должен ответить на ваш запрос о связи weak or strong
.
Но в сущности строгая реализация одноэлементности будет иметь только один экземпляр этого класса, созданный на протяжении всего срока действия приложения. Поэтому, если у вас есть 100 объектов, указывающих на него, это не изменяет печать вашей памяти, есть только один синглтон, но если у вас есть 100 объектов, которые определенно повлияют на вашу память.
Каковы константы? –