내가 뭘하려고하는지 간략하게 설명합니다. didSelectRowAtIndexPath : 내가있는 tableView 사용하고테이블 뷰간에 앞뒤로 전환 할 때 EXC_BAD_ACCESS 오류가 발생합니다.
이 방법에서 볼 수 있듯이과 같이 해당 뷰에서 행 선택을 잡는 내있는 UITableViewController 하위 클래스 내부의 방법을 ...
//..... inside tableView:didSelectRowAtIndexPath:
if (indexPath.section == 0) {
//--- Get the subview ready for use
VehicleSearchResponseTableViewController *vehicleSearchResponseTableViewController = [[VehicleSearchResponseTableViewController alloc] initWithNibName:@"VehicleSearchResponseTableViewController" bundle:nil];
// ...
//--- Sets the back button for the new view that loads
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:nil action:nil] autorelease];
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:vehicleSearchResponseTableViewController animated:YES];
if(indexPath.row == 0) {
vehicleSearchResponseTableViewController.title = @"Mans";
EngineRequests *engineRequest = [[EngineRequests alloc] init];
[engineRequest getMans];
[engineRequest release];
}
if(indexPath.row == 1) {
//.... etc etc
나는 몇 가지를 설정 그런 다음 viewstack에 새 뷰를 밀어 넣고 back 단추 텍스트를 변경 한 다음 다른 행을 catch 한 다음 nsobject의 하위 클래스에서 메서드를 시작하여 모든 연결/요청 작업을 수행하려고합니다.
내 NSObject 내부에는 UITableViewController에서 선택할 수있는 여러 셀에 대해 여러 가지 방법이 있습니다. 기본적으로 다른 ASIHTTPRequest 래퍼를 초기화하는 다른 문자열을 지정하여 PHP 스크립트에 연결하고 모든 데이터를 잡습니다. NSObject는 다음과 같이 보입니다. 여기에서
//.... NSObject.m
- (IBAction) getMans
{
NSString *mansString = [[NSString alloc] initWithString:@"mans.php"];
[self grabURLInBackground:mansString];
[manusString release];
}
//....cont....
//--- Connect to server and send request ---------------->>
- (IBAction)grabURLInBackground:(NSString *)setUrlString
{
NSString *startURL = [NSString stringWithFormat:@"http://127.0.0.1:8888/CodeTest/%@", setUrlString];
NSURL *url = [NSURL URLWithString:startURL];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSString *responseString = [request responseString]; //Pass request text from server over to NSString
NSData *responseData = [responseString dataUsingEncoding:NSUTF8StringEncoding]; //Create NSData object for Parser Delegate and load with responseString
NSLog(@"stuff %@",responseData);
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
NSLog(@"%@", error);
}
나는 내가 해결해야한다고 여기까지 얻을 수 있어요 전에 그러나 나는 오류가 나는 .. 새로 밀어 jQuery과 다시 이상 requestFinished 방법에서 무엇입니까 데이터를 전달하고 싶습니다 ... 시뮬레이터를 실행하고 앞뒤로보기 (데이터를 넣으려는 새로 팝업 된보기 및 기본 UITableViewController) 사이를 클릭하면 응용 프로그램이 넘어져 주에 오류가 발생합니다. m 스레드 1 : 프로그램 수신 신호 EXC_BAD_ACCESS .. 그냥 내 코드가 그렇게 나쁘지 않다는 것을 알기 때문에 무엇이 발생하는지 알지 못합니다.
또한 응용 프로그램을 디버깅 할 때 grabURLInBackground 메서드가 끝나면 getMans 메서드로 다시 튀어 나오고 UITableViewController로 돌아가서 if 문을 완전히 거치며 requestFinished 및 requestFailed 메서드를 완전히 무시합니다. 이유를 알 수 없습니다.
올바른 방법으로 사용해야하는 메소드와 함수를 호출하는 것이 확실하지 않은 것 같아요. 개선 할 수있는 방법에 대한 제안이나 답변이 있거나 내 오류가 어디에서 발생하는지 알고 있다면 대단히 감사하겠습니다.
Instruments 나 NSZombiesEnabled를 사용하여 좀비를 찾는 것이 이런 종류의 디버깅을 시작할 수있는 좋은 방법 일 것입니다. – gdawg
아아, 지금부터 살펴 보겠습니다. Product> Analyze를 사용하여 고정 된 몇 가지 잠재적 메모리 누수를 보았습니다.하지만이 좀비를 찾으려고합니다. –