我想将对象添加到NSMutableArray但是在编写以下代码后我得到了benchmarkArray NIL。错误在哪里帮助我
[benchmark setBenchmarkTitle:self.benchmarkTitle.text];
[benchmark setBenchmarkDescription:self.benchmarkDescription.text];
[benchmarkArray addObject:benchmark];
我的Benchmark课程是:
@interface Benchmark : NSObject
@property (nonatomic, retain) NSString *bid;
@property (nonatomic, retain) NSString *benchmarkTitle;
@property (nonatomic, retain) NSString *benchmarkDescription;
-(id)initWithCoder: (NSCoder *)coder;
-(void)encodeWithCoder:(NSCoder *)encoder;
@end
@implementation Benchmark
@synthesize bid;
@synthesize benchmarkTitle;
@synthesize benchmarkDescription;
- (id) initWithCoder:(NSCoder *)coder {
self = [super init];
if(self) {
bid = [coder decodeObjectForKey:@"id"];
benchmarkTitle = [coder decodeObjectForKey:@"benchmarkTitle"];
benchmarkDescription = [coder decodeObjectForKey:@"benchmarkDescription"];
}
return self;
}
- (void) encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:bid forKey:@"id"];
[encoder encodeObject:benchmarkTitle forKey:@"benchmarkTitle"];
[encoder encodeObject:benchmarkDescription forKey:@"benchmarkDescription"];
}
@end
答案 0 :(得分:2)
您的BenchMark Class没有错。
您的问题出在您创建benchMarkArray
的课程中。
在创建它的属性后,您需要在init/awakeFromNib/viewDidLoad
方法中将其初始化为:
benchMarkArray=[[NSArray alloc]init];
,或者
benchmarkArray=[NSArray new];
答案 1 :(得分:1)
你忘了分配和初始化
benchmarkArray = [[NSMutableArray alloc] init];