基本上,我創建的應用程序的主視圖是MKMapView,我需要顯示一些註釋(企業,學校等)註釋來自KML文件,我'檢索'動態'。第二個視圖是一個UITableView,它具有表示地圖中註釋的類別。選擇某些類別會導致帶有ID的字符串,並且當單擊後退按鈕時,該視圖應該傳遞該字符串到MapView,它被連接到另一個包含「查詢字符串」另一部分的字符串,因此應下載KML文件並在地圖中查看其註釋。 存在問題,可以選中(選中)所有單元格,但是當單擊導航欄按鈕'返回'以轉到上一個視圖時,應用程序崩潰。當我沒有選擇任何單元格並單擊後退按鈕,該應用程序仍然崩潰,但在日誌文件中它告訴我,我傳遞給前一個視圖的字符串是nil.I準備了用於將參數從一個視圖傳遞到另一個視圖的代碼,並且不明白將要發生的事情wrong.I發佈代碼僅與視圖之間的字符串傳遞有關。在視圖之間傳遞字符串:應用程序崩潰
GisListViewController.m:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@">>> Entering %s <<<", __PRETTY_FUNCTION__);
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:NO];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (cell.accessoryType == UITableViewCellAccessoryNone) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
}
NSMutableDictionary * myDictionary = [[NSMutableDictionary alloc] initWithCapacity:60];
int i = 0;
for (i = 0; i < [gisCategoryID count]; i++) {
[myDictionary setObject:[gisCategoryList objectAtIndex:i] forKey:[gisCategoryID objectAtIndex:i]];
NSMutableString *paramString2 = [[[NSMutableString alloc] init] autorelease];
[paramString2 appendFormat:@"%@&", [myDictionary objectForKey:[gisCategoryID objectAtIndex:i]]];
paramString = paramString2;
}
NSLog(@"<<< Leaving %s >>>", __PRETTY_FUNCTION__);
}
- (void) viewWillDisappear:(BOOL) animated
{
NSLog(@">>> Entering %s <<<", __PRETTY_FUNCTION__);
NSString *httpString = @"http://www.ikub.al/hartav2/handlers/kmlgenerator.ashx?layerid=";
NSString *finalkmlString = [ httpString stringByAppendingString:paramString ];
[[self delegate] setKmlString:finalkmlString];
NSLog(@"<<< Leaving %s >>>", __PRETTY_FUNCTION__);
}
希望它能幫助。
謝謝!它工作完美!現在它不再崩潰了。 – Hari