初めてシングルトンを使って実験しています。アイテムを追加および削除するためのいくつかの特別なメソッドを使用して、すべてのビュー コントローラーにグローバルな配列が必要です (これはショッピング カートのようなものです)。
私のシングルトン クラスは Cart と呼ばれます。
これは Cart.h です:
@interface Cart : NSObject
@property NSMutableArray *cartArray;
+ (Cart *)sharedManager; // Class method to return the singleton object
- (void)addItemToCart:(id)object;
- (void)removeItemFromCart:(id)object;
- (void)emptyAllItemsFromCart:(id)object;
- (NSMutableArray *)returnArray;
@end
これは Cart.m です:
@implementation Cart
// @property NSMutableArray *cartArray;
NSMutableArray *cartArray;
+ (Cart *)sharedManager
{
Cart *cartObject = [[Cart alloc]init];
// self.cartArray = [NSMutableArray new];
return cartObject;
}
- (void)addItemToCart:(id)object
{
if(!cartArray){
cartArray = [NSMutableArray new];
}
[cartArray addObject:object];
}
- (void)removeItemFromCart:(id)object
{
[cartArray removeObject:object];
}
- (void)emptyAllItemsFromCart:(id)object
{
[cartArray removeAllObjects];
}
次に、ビュー コントローラーの 1 つで、カスタム オブジェクト (文字列と NSNumbers を含む) をグローバル配列に渡そうとしています。
// Cart *singleton = [Cart sharedManager];
// [singleton addItemToCart:self.localChosenAccessory];
または多分次のようなもの:
Cart *mySingleton = [Cart sharedManager];
mySingleton.cartArray = self.addToCartArray;
上記の両方のシングルトン オブジェクトは nil になります。
私はシングルトンとObjective C全般に不慣れです。アドバイスをいただければ幸いです。同様のスタックオーバーフローリンクをたくさん読んだことがありますが、私の状況ではよくわかりません。