Objective c 在Cocoa中将筛选器应用于NSArray控制器后,如何从NSArray获取值
我正在学习cocoa中的绑定。我的ArrayController绑定到tableview和searchfield。数据显示和过滤良好。 这些属性位于可变数组中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”。我的主要问题是,我
@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在玩具应用程序和原型设计中,制作字典往往效果很好,但很快就会显示出它的局限性。)