【发布时间】:2014-04-18 18:04:49
【问题描述】:
我正在 iPad 上实施购物车项目。
我有一个类“productItem”
#import <Foundation/Foundation.h>
@interface ProductItem : NSObject
+(instancetype)createProductId:(NSString *)aId description:(NSString *)aDesc price:(int)aPrice;
@property(nonatomic, copy)NSString *productId;
@property(nonatomic, copy)NSString *description;
@property(nonatomic)int price;
@end
“CartItem”类
@interface CartItem : NSObject
@property(nonatomic,weak)ProductItem *prodItem; @property(nonatomic)int 数量;
+(instancetype)createProdItem:(posProductItem *)aProdItem 数量:(int)aQuantity;
@结束
我有另一个类“ProductStore”。这个类有 2 个 NSMUtableAray 存储 productItems 和 cartItems:
@property(nonatomic)NSMutableArray *productItems;
@property(nonatomic)NSMutableArray *cartItems;
我实现了 2 个 ViewController,productSearchViewController 和 cartViewController。 cartViewController 基本上显示了 cartItems 中的元素。
productSearchViewController 的功能描述如下:
productSearchViewController
产品显示在 UICollectionView 中。从 Web 服务检索的 ProductItems 填充到 ProductStore NSMutableArray "productItems"
- 产品项可以添加到“cartItems”中。
[CartItem createProdItem:aProdItem 数量:1]; // 这里 aProdItem 是 ProductItem *
- 用户可以在 UISearchBar 中搜索产品。我实现了
(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString*)searchText来查询Web 服务的数据。对于每次搜索,我将清除 NSMutableArray "productItems" 并使用来自网络服务的数据重新填充它
因为我清除了 UIMutableArray "productItems",所以 NSMutableArray "cartItems" 中的 productItem 也会被删除。 cartItem 元素仍然存在,但每个 cartItem 元素中的 productItem 为空:产品 id、描述和价格为空。
我应该如何解决这个问题?将产品添加到购物车时,我应该将 ProductItem 对象复制到 CartItems 中吗?
【问题讨论】:
-
对
prodItem使用强属性。 -
嗨热舔,谢谢回复。行得通。
-
但是看看 Murat 的回答——你在做什么没有多大意义。
标签: objective-c nsmutablearray