首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMutableArray动态更新?

NSMutableArray动态更新?
EN

Stack Overflow用户
提问于 2013-12-05 19:06:14
回答 1查看 77关注 0票数 0

我有如下代码。

代码语言:javascript
复制
Ticket *ticket1 = [[Ticket alloc] initWithName:@"INC1234" group:@"PIMS-EU-COG" type:@"Incident" status:@"Active" createdOn:@"20-Oct-2013" createdBy:@"Dinesh" completionDate:@"23-Oct-2013" notes:@"1. All works coreectly 2. New variables are created.."];
Ticket *ticket2 = [[Ticket alloc] initWithName:@"PRJ2342" group:@"PIMS-EU-COG" type:@"Project" status:@"Closed" createdOn:@"20-Oct-2013" createdBy:@"Dinesh" completionDate:@"23-Oct-2013" notes:@"1. All works coreectly 2. New variables are created.."];
Ticket *ticket3 = [[Ticket alloc] initWithName:@"ENC1234" group:@"PIMS-EU-COG" type:@"Enhancement" status:@"Awaiting vendor" createdOn:@"20-Oct-2013" createdBy:@"Dinesh" completionDate:@"23-Oct-2013" notes:@"1. All works coreectly 2. New variables are created.."];
Ticket *ticket4 = [[Ticket alloc] initWithName:@"INC2345" group:@"CRM-EU-COG" type:@"Incident" status:@"Active" createdOn:@"20-Oct-2013" createdBy:@"Alex" completionDate:@"23-Oct-2013" notes:@"1. All works coreectly 2. New variables are created.."];
Ticket *ticket5 = [[Ticket alloc] initWithName:@"PRJ2345" group:@"CRM-EU-COG" type:@"Project" status:@"Pending" createdOn:@"20-Oct-2013" createdBy:@"Alex" completionDate:@"23-Oct-2013" notes:@"1. All works coreectly 2. New variables are created.."];
Ticket *ticket6 = [[Ticket alloc] initWithName:@"ENC2345"group:@"CRM-EU-COG" type:@"Enhancement" status:@"Active" createdOn:@"20-Oct-2013" createdBy:@"Alex" completionDate:@"23-Oct-2013" notes:@"1. All works coreectly 2. New variables are created.."];

self.TicketsFinal= [NSMutableArray arrayWithObjects:ticket1,ticket2,ticket3, nil];
/*
if (groupFinal == @"PIMS-EU-COG") {

    self.TicketsFinal= [NSMutableArray arrayWithObjects:ticket1,ticket2,ticket3, nil];
}else if (groupFinal == @"CRM-EU-COG")
{
    self.TicketsFinal= [NSMutableArray arrayWithObjects:ticket4,ticket5,ticket6,ticket7,ticket8,ticket9, nil];
}*/

我有三个参数:

  1. GroupFinal
  2. TypeFinal
  3. StatusFinal。

groupsFinal将持有该小组(如:PIMS COG)的详细信息.typeFinal将持有何种类型的票证(例如:意外),而statusFinal将保存票证的状态(ex: Active)。这3个参数是从先前的观点得到的。

我有一个名为self.ticketsFinal的数组,它应该仅根据所选的标准来保存票证。我尝试了硬编码组(最后评论部分)和导航,这不是正确的方法。

例:当groupFinalTypeFinalstatusFinal的值为PIMS-EU-COGIncidentActive时,在这种情况下,self.TiketsFinal应该只包含Ticket1 (这符合标准)。

AlltypeFinalstatusFinal中被选中时,组中的所有票证都应该在数组中更新。

有人能帮忙吗。你的帮助非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-05 19:10:40

为此,您可能可以使用NSPredicate:

代码语言:javascript
复制
[self.TicketsFinal filteredArrayUsingPredicate:
    [NSPredicate predicateWithFormat:@"group = %@", @"PIMS-EU-COG"]];

这将返回一个新数组,该数组只包含组等于“PIMS”的对象。

您可以看到使用NSPredicate 这里的指南。

而且,如果使用此方法,则数组不需要是可变的。如果您确实希望丢弃与不匹配的项,则可以这样做

代码语言:javascript
复制
[self.TicketsFinal filterUsingPredicate:
    [NSPredicate predicateWithFormat:@"group = %@", @"PIMS-EU-COG"]];

在这种情况下,需要使用多个参数来筛选对象集。您可以为此使用NSCompoundPredicate

代码语言:javascript
复制
NSPredicate *groupPredicate = [NSPredicate 
     predicateWithFormat:@"group = %@", @"PIMS-EU-COG"];

NSPredicate *typePredicate = [NSPredicate 
     predicateWithFormat:@"type = %@", @"Incident"];

NSCompoundPredicate *compoundPredicate = [NSCompoundPredicate 
     andPredicateWithSubpredicates:@[groupPredicate, typePredicate]];

NSArray *result = [self.TicketsFinal filteredArrayUsingPredicate:compoundPredicate];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20408457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档