在课堂上:
- (ClassA *)initWithID:(NSString *) cID andTitle:(NSString *) cTitle {
ClassAID = cID;
ClassATitle = cTitle;
return self;
}
在课堂上:
- (void)cellDidSelected {
ClassA *classAController = [[ClassA alloc] init];
//Program received signal: “EXC_BAD_ACCESS” when executing the following line.
classAController = [classAController initWithClassAID:ClassAID andClassATitle:ClassATitle];
NSLog(@"I want to get the value of ID:%@ and Title:%@ here.", [classAController ClassATitle], [classAController ClassAID])
}
有人能指出错在哪里吗? 非常感谢。
答案 0 :(得分:1)
尝试使用:
- (id)initWithID:(NSString*) cID andTitle:(NSString*) cTitle {
if (!(self = [super init]))
return nil;
ClassAID = cID;
ClassATitle = cTitle;
return self;
}
然后你可以做类似的事情:
ClassA * classA = [[ClassA alloc] initWithID:anID andTitle:aTitle];
我建议将ClassAID
和ClassATitle
作为属性,如果它们还没有,如果它们是你应该使用的话:
[self setClassAID:cID];
[self setClassATitle:cTitle];
这样他们就会被妥善保留。
答案 1 :(得分:0)
通常,根据您上面发布的情况设计的结构将包括[super init]
本身内initWithID
的调用,因此每个对象只调用一个init
例程实例。但是,我不认为这是你所看到问题的根本原因。