我不确定我是否采取了正确的方法,但我想从不同的viewControllers访问我的购物车类的模型。我的第一个方法是在每个viewController中初始化一个Cart *对象,但我想我最终得到了多个购物车对象,而我想要的只是一个可以全局访问的对象。在搜索之后,我想出了一个看起来更好的不同方法,但还没有运气。
我有一个应该向购物车添加交易的按钮。但是当我尝试添加它时,该方法不会被调用。以下是我设置它的方法。
在我的购物车类中,我有一个NSMutableArray来持有我的交易。
在我的viewController中,我设置了一个Cart * cart类型的属性,并像这样初始化
@property (strong, nonatomic) Cart *cart;
...
-(id)initWithModel:(Cart *)cart {
self = [super init];
if(self){
self.cart = cart;
}
return self;
}
然后我的按钮方法就是这个
-(IBAction)addDealToCart {
NSLog(@"The Cart has %i items", [self.cart qtyOfItemsInCart]);
NSLog(@"Added the Deal to the Cart");
[self.cart addDealsToCart:self.deal];
NSLog(@"The Cart now has %i items", [self.cart qtyOfItemsInCart]);
self.deal.qtyInCart = self.deal.qtyInCart + 1;
NSLog(@"the deal has %i items in the Cart", self.deal.qtyInCart);
}
在这行addDealsToCart:交易永远不会被调用。
这是我的购物车类中的addDealsToCart:deal方法
-(void)addDealsToCart:(Deals *)deal {
[self.cartContents addObject:deal];
NSLog(@"the deal was added to the cart %@",deal);
}
任何帮助都会很棒。感谢
答案 0 :(得分:0)
如果不进行整体重新构建,为什么不将购物车对象传递给每个视图控制器?我个人不会去你的描述暗示的单身路线。
更新(示例):
UIViewController *yourNextVC = [[YourNextVC alloc] init];
yourNextVC.cart = self.cart //The current cart in your current vc, passing it along.
[self presentViewController:yourNextVC animated:YES completion:nil];
答案 1 :(得分:0)
我只想要一个购物车变量通过应用程序你可以在appDelegate中拥有它如果你想
@property (strong, nonatomic) Cart *cart;
取出很简单
AppDelegate *appDelegateObject=(AppDelegate*)[[UIApplication shareApplication] delegate];
appDelegateObject.cart.qtyOfItemsInCart= 1; //initialize where you want.
取出另一个视图控制器:
AppDelegate *appDelegateObject=(AppDelegate*)[[UIApplication shareApplication] delegate];
NSLog(@"cart value: %d,appDelegateObject.cart.qtyOfItemsInCart);