2012-06-28 2 views
0

안녕하세요 여러분 모두가 이것에 대답 할 수 있는지 확신합니다.하지만 나는 바보가되어 버렸습니다.NSString을 리콜 및 처리하기

배열이있어서 didSelectRowAtIndexPath 행을 저장 한 다음 NSLog formatSelected를 저장할 수 있습니다. 그런 다음 뷰 컨트롤러를 팝하고 formatSelected를 botton 제목으로 표시합니다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSString *formatSelected = [[NSString alloc]init]; 
    formatSelected:[format objectAtIndex:indexPath.row]; 
    NSLog(@"this is the format selected %@",formatSelected); 
    [button2 setTitle:[format objectAtIndex:indexPath.row] forState:UIControlStateNormal]; 
    [navigationControler popViewControllerAnimated:YES]; 
} 

잘 작동합니다.

내 문제는 새롭게 제목이 지정된 단추가있는 이전보기에서 다른 단추와 레이블이 있다는 것입니다.

나는 두 번째 버튼을 누르고 formatSelected 라벨에 문자열 또는 NSLog 그

-(IBAction)printResults{ 
NSString *fmat = [[NSString alloc]initWithFormat:@"%@",formatSelected]; 
NSLog(@"%@",fmat); 
    NSLog(@"nslong button pressed");} 

그러나 NSLog 단지 디스플레이 (널)을 표시 할 수 있도록하려면?

저는 @property (nonatomic, retain) NSString *formatSelected;입니다.

내가 뭘 잘못하고 있니?

+0

이 코드는 중복되어 있습니다. 'NSLog (@ "% @", formatSelected)'를 호출하면됩니다. – Linuxios

답변

0

거의 항상 copyretain이 아닌 NSString *을 사용하고 싶습니다. 자세한 내용은이 답변을 참조하십시오. tableView:didSelectRowAtIndexPath: 메서드에서 로컬 변수로 formatSelected을 선언하고 있습니다. NSString property: copy or retain?

1

이 메서드 내에서 formatSelected에 할당 한 것은 메서드가 종료 된 후에도 액세스 할 수 없게됩니다. 선택한 형식을 속성 (및 해당 인스턴스 변수) 대신이 로컬 변수에 할당합니다.

[self setFormatSelected:[format objectAtIndex:indexPath.row]];을 사용하고 NSString *formatSelected... 행을 완전히 삭제하십시오.

+0

치료를 도와 주심에 감사드립니다 ......하지만 어쩌면 나는 바보입니다 ....... setFormatSelected line ??? formatSelected는 이제 대문자 'F'를 갖습니다. 어떻게 작동합니까? 대/소문자를 구분하는 formatSelected 변수를 변경하지 마십시오. 대소 문자를 구분하는 경우 formatSelected를 어떻게 참조합니까? – NewAtIOS

관련 문제