3
이 코드 조각에 문제가 있습니다. 나중에 데이터를 plist에 저장하려고합니다. 사용자가보기를 다시 열면 각 세그먼트에 현재 선택된 세그먼트가 있어야합니다. 내보기에 대한 통제. 나는 시도하고 정보를 저장할 때plist 세그먼트 컨트롤 저장 문제
그러나, 그것은
[array addObject:gender];
당신은 당신의 gender
속성을 초기화하지 않았다가 EXC_BAD_ACCESS
-(IBAction)genderSelection:(id)sender
{
if([sender selectedSegmentIndex] == kSwitchesSegmentIndex)
{
gender = @"Male";
//NSLog(gender);
}
else {
gender = @"Female";
//NSLog(gender);
}
}
-(IBAction)contactTypeSelection:(id)sender
{
if([sender selectedSegmentIndex] == kSwitchesSegmentIndex)
{
contactType = @"a";
//NSLog(gender);
}
else {
contactType = @"b";
//NSLog(gender);
}
}
-(IBAction)saveData:(id)sender
{
NSMutableArray *array = [[NSMutableArray alloc] init];
[array removeAllObjects];
[array addObject:field1.text];
[array addObject:field2.text];
[array addObject:gender];
[array addObject:contactType];
[array writeToFile:[self dataFilePath] atomically:YES];
[array release];
}
-(NSString *)dataFilePath
{
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [path objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:kFilename];
}
-(void)viewWillAppear:(BOOL)animated
{
NSString *filePath = [self dataFilePath];
if([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
field1.text = [array objectAtIndex:0];
field2.text = [array objectAtIndex:1];
gender = [array objectAtIndex:2];
contactType = [array objectAtIndex:3];
if([gender isEqualToString:@"Male"])
{
genderSegment.selectedSegmentIndex = 0;
}
else
{
genderSegment.selectedSegmentIndex = 1;
}
if([contactType isEqualToString:@"a"])
{
}
else
{
}
[array release];
}
}
-(IBAction)textDone:(id)sender
{
[sender resignFirstResponder];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)dealloc
{
[gender release]; //need to release
[contactType release]; //need to release
[field1 release]; //need to release
[field2 release]; //need to release
[super dealloc];
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
gender = @"Male";
contactType = @"a";
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)viewDidUnload
{
gender = nil; //need to release
contactType = nil; //need to release
field1 = nil ; //need to release
field2 = nil; //need to release
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
나는 .h를 @property를 사용하여 합성하고 그것을 합성했다. – mintuz
sur right.but u는 무언가를 저장하고 그 위에 살고 싶으면 인스턴스화합니다. 따라서 alloc 및 init을 사용하고 store.now U가 해제 될 때까지 메모리를 임대 할 수 있습니다. –
일어난 일 ....... 작동 여부 –