我是 iOS 开发和 DBAccess 框架的初学者,我遇到了一个可能很容易解决的问题,但我真的不知道如何呈现它。
我的 DBObject 类扩展:
标题
//FavouriteProduct.h
#import <UIKit/UIKit.h>
#import <DBAccess/DBAccess.h>
#import "Product.h"
@interface FavouriteProduct : DBObject
@property Product *product;
@property NSString *userID;
@property NSString *productID;
@end
执行
//FavouriteProduct.m
#import "FavouriteProduct.h"
#import "Product.h"
@implementation FavouriteProduct
@dynamic productID;
@dynamic userID;
@dynamic product;
@end
产品.m 文件:
@implementation Product{
NSString *id;
float price;
float discount;
NSDictionary *ownerProduct;
NSDictionary *originalDict;
}
//I create my Product objects from JSON
-(instancetype)initWithJSONDictionary:(NSDictionary *)JSONDict{
self = [super init];
if (self) {
[self setValuesForKeysWithDictionary:JSONDict];
}
originalDict = [[NSDictionary alloc] initWithDictionary:JSONDict];
return self;
}
// + some more getter methods
Product.h 文件包含 getter 方法和上述 initWithJSONDictionary 方法的接口声明。
我尝试使用以下代码设置产品属性:
FavouriteProduct *fav = [FavouriteProduct new];
fav.product = self.product; //self.product is an object of Product class
fav.productID = self.product.getProductID;
[fav commit];
我收到此错误: 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[FavouriteProduct setProduct:]: unrecognized selector sent to instance 0x16e5bf10”
我也试过这样:
FavouriteProduct *fav = [FavouriteProduct new];
fav.product = [[Product alloc]initWithJSONDictionary:self.product.getOriginalDictionary]; //set a Product object from NSDictionary
fav.productID = self.product.getProductID;
[fav commit];
我犯了同样的错误。
我错过了什么?感谢您的时间。