Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 搜索NSArray词典_Iphone_Objective C_Ios - Fatal编程技术网

Iphone 搜索NSArray词典

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;

如果我尝试搜索的数组是NSLOG(),我会得到这个

(
    {
    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语句——它不是真正的字符串——它必须首先得到解释,然后才创建真正的谓词。在任何情况下,您都可以选择最适合您的工具-我已经越来越多地使用枚举,并且对它们非常满意。就像他们说的!