Iphone 搜索NSArray词典
如果我尝试搜索的数组是NSLOG(),我会得到这个Iphone 搜索NSArray词典,iphone,objective-c,ios,Iphone,Objective C,Ios,如果我尝试搜索的数组是NSLOG(),我会得到这个 ( { id = 101323790; "screen_name" = AmyBurnett34; }, { id = 25073877; "screen_name" = realDonaldTrump; }, { id = 159462573; "screen_name" = ecomagination; }, { id = 285234969;
(
{
id = 101323790;
"screen_name" = AmyBurnett34;
},
{
id = 25073877;
"screen_name" = realDonaldTrump;
},
{
id = 159462573;
"screen_name" = ecomagination;
},
{
id = 285234969;
"screen_name" = "UCB_Properties";
},
{
id = 14315150;
"screen_name" = MichaelHyatt;
}
)
这很好,但我需要做的是能够有一个方法,让我输入一个id,然后它返回匹配的屏幕名称作为NSString。如果数组被调用,我怎么做呢
我想NSPredicate是我要找的,但我不确定
NSArray *twitterInfo;
是的,NSPredicate是你想要的。大概是这样的:
NSString yourID; // assume this contains the id you want
NSPredicate *pred = [NSPredicate predicateWithFormat:@"id = %@", yourID];
NSString *screenName = [[[twitterInfo filteredArrayUsingPredicate:pred] lastObject] objectForKey:@"screen_name"];
是的,NSPredicate是你想要的。大概是这样的:
NSString yourID; // assume this contains the id you want
NSPredicate *pred = [NSPredicate predicateWithFormat:@"id = %@", yourID];
NSString *screenName = [[[twitterInfo filteredArrayUsingPredicate:pred] lastObject] objectForKey:@"screen_name"];
我倾向于对块使用枚举(比谓词更容易理解:-):
如果用户名在此末尾为nil,则找不到id。我倾向于使用带块的枚举(比谓词更容易理解:-):
如果用户名在此结尾处为nil,则找不到id。这将不返回任何内容,表明我的数组为空empty@TheMan当前位置我刚刚做了一个测试,以确保我不会发疯,而且测试效果很好。看来你一定在什么地方有错误的数据。在没有更多信息的情况下很难判断出哪里出了问题。这不会返回它所说的我的数组是什么empty@TheMan当前位置我刚刚做了一个测试,以确保我不会发疯,而且测试效果很好。看来你一定在什么地方有错误的数据。没有更多的信息很难判断出哪里出了问题。如果你认为样板10行循环比一行谓词更容易理解,我想也许你只是没有给谓词一个公平的选择。:-)YMMV。苹果一直在告诉WWDC的开发人员块更快,代码更小。上面的好处是它可以很快变得复杂得多——试着用谓词来做。上面的谓词就像一个format语句——它不是真正的字符串——它必须首先得到解释,然后才创建真正的谓词。在任何情况下,您都可以选择最适合您的工具-我已经越来越多地使用枚举,并且对它们非常满意。就像他们说的!如果您认为样板10行循环比一行谓词更容易理解,我想可能您只是没有给谓词一个公平的选择。:-)YMMV。苹果一直在告诉WWDC的开发人员块更快,代码更小。上面的好处是它可以很快变得复杂得多——试着用谓词来做。上面的谓词就像一个format语句——它不是真正的字符串——它必须首先得到解释,然后才创建真正的谓词。在任何情况下,您都可以选择最适合您的工具-我已经越来越多地使用枚举,并且对它们非常满意。就像他们说的!