首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码优化(将2行代码合并为1行)

代码优化(将2行代码合并为1行)
EN

Stack Overflow用户
提问于 2013-07-19 23:51:33
回答 4查看 113关注 0票数 0

我已经尝试了一些组合,但似乎不能正确使用。我希望将第2行和第3行合并为一行代码。

代码语言:javascript
复制
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == 'SSM M51 Copperhead'"];
NSArray *searchResults1 = [self.weaponsArray filteredArrayUsingPredicate:predicate];
weapons = [searchResults1 objectAtIndex:0];
if(weapons.range > SSMrange)
    SSMrange = weapons.range;

(“武器”是一个类)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-19 23:53:16

代码语言:javascript
复制
weapons = [self.weaponsArray filteredArrayUsingPredicate:predicate][0];

但这并不会让你的代码变得更快。

票数 2
EN

Stack Overflow用户

发布于 2013-07-20 00:05:28

像这样定义一个方法怎么样:

代码语言:javascript
复制
- (Weapon*)firstWeaponMatchingPredicateWithFormat:(NSString*)format
{
    NSPredicate *predicate = [NSPredicate predicateWithFormat:format];
    NSArray *searchResults1 = [self.weaponsArray filteredArrayUsingPredicate:predicate];
    return (searchResults1.count > 0 ? [searchResults1 objectAtIndex:0] : nil);
}

通过以下方式进行呼叫:

代码语言:javascript
复制
Weapon *weapon = [self firstWeaponMatchingPredicateWithFormat:@"name == 'SSM M51 Copperhead'"];
票数 2
EN

Stack Overflow用户

发布于 2013-07-20 00:08:07

代码语言:javascript
复制
weapon = [[self.weaponsArray filteredArrayUsingPredicate:predicate] objectAtIndex:0];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17750370

复制
相关文章

相似问题

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