我正在使用Objective-C.Is开发简单的ios应用程序,使用另一种方法来优化此代码:
if ([segue.identifier isEqualToString:@"showCommitDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
CommitDetailsTableViewController *destViewController = segue.destinationViewController;
RepoObject *repoObj = [self.RepoListArray objectAtIndex:indexPath.row];
NSString *repoCommit_url = [repoObj.Commit_url stringByReplacingOccurrencesOfString:@"{/sha}" withString:@""];
if (indexPath.row == 0) {
NSString *SpringBootURL = repoCommit_url;
self.commit_url = SpringBootURL;
destViewController.CommitRepoURL = self.commit_url;
destViewController.navigationItem.title = @"Spring-Integration-in-Action";
}else if (indexPath.row == 1){
NSString *SpringFrameworkURL = repoCommit_url;
self.commit_url = SpringFrameworkURL;
destViewController.CommitRepoURL = self.commit_url;
destViewController.navigationItem.title = @"spring-data-jdbc-ext";
}else if (indexPath.row == 2){
NSString *SpringAmqpURL = repoCommit_url;
self.commit_url = SpringAmqpURL;
destViewController.CommitRepoURL = self.commit_url;
destViewController.navigationItem.title = @"spring-data-commons";
}else if (indexPath.row == 3){
NSString *SpringIdeURL = repoCommit_url;
self.commit_url = SpringIdeURL;
destViewController.CommitRepoURL = self.commit_url;
destViewController.navigationItem.title = @"spring-data-graph";
}else{
NSString *SpringIntegratURL = repoCommit_url;
self.commit_url = SpringIntegratURL;
destViewController.CommitRepoURL = self.commit_url;
destViewController.navigationItem.title = @"spring-data-document-examples";
}
}
除此之外,如何直接分配标题而不像上面那样进行硬编码。?
答案 0 :(得分:1)
if ([segue.identifier isEqualToString:@"showCommitDetail"]) {
NSInteger selectedRow = [self.tableView indexPathForSelectedRow].row;
CommitDetailsTableViewController *destViewController = segue.destinationViewController;
RepoObject *repoObj = [self.RepoListArray objectAtIndex:selectedRow];
self.commit_url = [repoObj.Commit_url stringByReplacingOccurrencesOfString:@"{/sha}" withString:@""];
destViewController.CommitRepoURL = self.commit_url;
NSString *title;
switch (selectedRow) {
case 0:
title = @"Spring-Integration-in-Action";
break;
case 1:
title = @"spring-data-jdbc-ext";
break;
case 2:
title = @"spring-data-commons";
break;
case 3:
title = @"spring-data-graph";
break;
default:
title = @"spring-data-document-examples";
break;
}
destViewController.navigationItem.title = title;
}
答案 1 :(得分:-1)
您可以尝试将第二个if else
更改为以下内容,它将优化代码行和易读性。
NSString *url = repoCommit_url;
self.commit_url = url;
destViewController.CommitRepoURL = self.commit_url;
if (indexPath.row == 0) {
destViewController.navigationItem.title = @"Spring-Integration-in-Action";
}else if (indexPath.row == 1){
destViewController.navigationItem.title = @"spring-data-jdbc-ext";
}else if (indexPath.row == 2){
destViewController.navigationItem.title = @"spring-data-commons";
}else if (indexPath.row == 3){
destViewController.navigationItem.title = @"spring-data-graph";
}else{
destViewController.navigationItem.title = @"spring-data-document-examples";
}