Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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
Objective c 在Cocoa中将筛选器应用于NSArray控制器后,如何从NSArray获取值_Objective C_Cocoa_Cocoa Bindings_Nsarraycontroller - Fatal编程技术网

Objective c 在Cocoa中将筛选器应用于NSArray控制器后,如何从NSArray获取值

Objective c 在Cocoa中将筛选器应用于NSArray控制器后,如何从NSArray获取值,objective-c,cocoa,cocoa-bindings,nsarraycontroller,Objective C,Cocoa,Cocoa Bindings,Nsarraycontroller,我正在学习cocoa中的绑定。我的ArrayController绑定到tableview和searchfield。数据显示和过滤良好。 这些属性位于可变数组中 @property (nonatomic, strong) NSString *displayName; @property NSInteger entityID; @property (nonatomic, strong) NSString *MemberStatus; 在表中,我正在显示“displayName”。我的主要问题是,我

我正在学习cocoa中的绑定。我的ArrayController绑定到tableview和searchfield。数据显示和过滤良好。 这些属性位于可变数组中

@property (nonatomic, strong) NSString *displayName;
@property NSInteger entityID;
@property (nonatomic, strong) NSString *MemberStatus;
在表中,我正在显示“displayName”。我的主要问题是,我需要选择一行并使用所选成员的“entityID”运行Web服务

如果我不过滤并选择一行,我就能够使用所选的行索引从可变数组中获取所需的“entityID”

[[[self.participantArray objectAtIndex:selectedRow] valueForKey:@"entityID"] integerValue] 
每当我进行筛选时,根据所选的行索引,它自然会返回错误的值。如何获取正确的字段?请帮忙。如果我的问题不清楚,请说明你需要什么。
谢谢。

表格视图正在显示阵列控制器的
arrangedObjects
。所以,你也应该把它编入索引

您需要阵列控制器的插座,以便执行以下操作:

[[[self.particpantsController.arrangedObjects objectAtIndex:selectedRow] valueForKey:@"entityID"] integerValue]
(实际上,我不知道您为什么在这里使用
-valueForKey:
。表达式
[self.particpantsController.arrangedObjects objectAtIndex:selectedRow]
为您提供对象。如果它具有
entityID
属性,您可以调用该对象上的getter。如果它是
NSDictionary
,那么您应该更喜欢
-objectForKey:
而不是
-valueForKey:
。实际上,您应该更喜欢创建一个真正的模型对象类并使用它,而不是
NSDic在玩具应用程序和原型设计中,制作字典往往效果很好,但很快就会显示出它的局限性。)