ios - object becomes null when passed to another view controller -
in ios application, need pass object 1 view controller , switch new view controller. goal relay information. however, object becomes null
, devoid of information when next view showed up. what? reason?
below part of code.
#pragma mark - table view delegate -(void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath { bidcourse *course = self.courses[indexpath.row]; nsstring *sub = course.subject; bidsubjectmaintwoviewcontroller *subjectcontroller=[[bidsubjectmaintwoviewcontroller alloc] init]; subjectcontroller.title = sub; subjectcontroller.course=course; [self.navigationcontroller pushviewcontroller:subjectcontroller animated:yes]; }
bidcourse *course
custom subclass nsobject
, has nsstrings
, , it's not nil, when pass onto next view controller, becomes null
.
i have met problem , when pass object viewcontroller , has been released.
i think defect of arc , arc think subjectcontroller
may no use , release subjectcontroller
. make subjectcontroller
property , arc not release when pass viewcontroller.
such :
#pragma mark - table view delegate -(void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath { bidcourse *course = self.courses[indexpath.row]; nsstring *sub = course.subject; _subjectcontroller=[[bidsubjectmaintwoviewcontroller alloc] init]; _subjectcontroller.title = sub; _subjectcontroller.course=course; [self.navigationcontroller pushviewcontroller:_subjectcontroller animated:yes]; }