Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Ios Objective-c中二维NSArray中的访问值_Ios_Objective C_Nsarray - Fatal编程技术网

Ios Objective-c中二维NSArray中的访问值

Ios Objective-c中二维NSArray中的访问值,ios,objective-c,nsarray,Ios,Objective C,Nsarray,对于下面的二维数组,我想搜索say John的名字,然后能够检索John Smith的名字和John的id NSArray *employees = @[@[@"John Smith",@"1"],@[@"Ken Robinson",@"2"],@[@"Albert Jones",@"3"],@[@"Richard Johnson",@"4"]]; 我可以使用上述语法创建数组。我如何搜索John并检索John Smith,2并访问员工id,2,类似于员工[0][1],其中0是索引,1是id的维

对于下面的二维数组,我想搜索say John的名字,然后能够检索John Smith的名字和John的id

NSArray *employees = @[@[@"John Smith",@"1"],@[@"Ken Robinson",@"2"],@[@"Albert Jones",@"3"],@[@"Richard Johnson",@"4"]];
我可以使用上述语法创建数组。我如何搜索John并检索John Smith,2并访问员工id,2,类似于
员工[0][1]
,其中0是索引,1是id的维度

这是我在一维中搜索数组的方式,但我对使用二维数组搜索的语法感到困惑

-(NSString *)findNameInArray:(NSString*) searchstring
NSArray* employees = @[@"John Smith"@"Ken Robinson",@"Albert Jones",@"Richard Johnson"];
for (long i=0;i<[employees count];i++) {
            name = employees[i];
            if ( [name localizedCaseInsensitiveCompare:searchstring] == NSOrderedSame) {
                return name;
            }//close loop
return @"":
    }
-(NSString*)FindNameArray:(NSString*)searchstring
NSArray*员工=@[@“约翰·史密斯”@“肯·罗宾逊”@“艾伯特·琼斯”@“理查德·约翰逊”];

对于(long i=0;i可能有一个很好的理由使用数组数组。如果是这样,您可以使用应用于内部数组的谓词筛选外部数组

// look for @"John" anywhere in the 1st element (case insensitive)
NSPredicate *p = [NSPredicate predicateWithFormat:@"SELF[0] CONTAINS[cd] %@", @"John"];
NSArray *matches = [employees filteredArrayUsingPredicate:p];

您还可以使用
BEGINSWITH

找到字符串开头的匹配项,也许有一个很好的理由使用数组数组。如果是这样,您可以使用应用于内部数组的谓词筛选外部数组

// look for @"John" anywhere in the 1st element (case insensitive)
NSPredicate *p = [NSPredicate predicateWithFormat:@"SELF[0] CONTAINS[cd] %@", @"John"];
NSArray *matches = [employees filteredArrayUsingPredicate:p];

您还可以使用
BEGINSWITH
找到字符串开头的匹配项。是的,在这种情况下,NSPredicate是最佳解决方案。

是的,NSPredicate是这种情况下的最佳解决方案。

为什么您首先有一个数组而不是字典数组,类似这样:
@[@“id”:@“1”,@“name”:@“John Smith”}、{“id”:“2”、@“name”:“Ken Robinson”}]
或自定义对象数组“等效”?最好在for循环中设计:
name=employees[i];
变成:
NSArray*person=employees[i];NSString*name=person[0];if([name localizedCase…{return person}
数组是一个糟糕的数据结构选择。拥有一个类数组,其中类具有名称和数字的属性。这将使许多事情变得更简单。为什么你首先拥有数组数组,而不是字典数组,类似这样:
@[@{@“id”:@“1”,“@“name”:@“John Smith”},@{@“id”“:@”2“,@”name:@“Ken Robinson”}]
,或自定义对象数组“等效”?最好在for循环中设计:
name=employees[i];
been:
NSArray*person=employees[i];NSString*name=person[0];if([name localizedCase…{return person}
数组是一个糟糕的数据结构选择。在类具有名称和编号属性的情况下,使用一个类数组。这将使许多事情变得更简单。