我第一次尝试使用单例。我想有一个对我的所有视图控制器都是全局的数组,它有一些特殊的方法来添加和删除项目(这是用于购物车之类的东西)。
我的单例类称为 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
这是购物车.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];
}
然后在我的一个视图控制器中,我试图将一个自定义对象(包含字符串和 NSNumber)传递给我的全局数组。
// Cart *singleton = [Cart sharedManager];
// [singleton addItemToCart:self.localChosenAccessory];
或者可能是这样的:
Cart *mySingleton = [Cart sharedManager];
mySingleton.cartArray = self.addToCartArray;
以上两个单例对象都为零。
一般来说,我是单身人士和 Objective C 的新手。我会很感激任何建议。我已经阅读了很多类似的 Stack Overflow 链接,但在我的情况下不太明白。