首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何优化if- can语句使其更简单?

如何优化if- can语句使其更简单?
EN

Stack Overflow用户
提问于 2017-04-02 14:31:02
回答 2查看 121关注 0票数 0

我在使用Object-C.Is开发简单的ios应用程序时使用下面的代码,这些代码有另一种优化代码的方法:

代码语言:javascript
复制
 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";
}

}

除此之外,我如何直接分配标题,而不像上面那样对其进行硬编码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-02 14:50:20

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2017-04-02 14:42:23

您可以尝试将第二个if else更改为以下内容,它将优化代码行和易读性。

代码语言:javascript
复制
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";
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43169505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档