【问题标题】:How to retrieve the values from the following NSMutableArray如何从以下 NSMutableArray 中检索值
【发布时间】:2012-03-23 05:25:26
【问题描述】:

当我 NSLog 我的 NSMutableArray 时,我得到的是以下内容

{  ABSNFGH True,
FDGJDKG False
GFKFLDL True
PDHJHN True
FHKDMD True
DSHDMD False )

问题是,我没有创建这个数组。但是我想将每个条目(例如 ABSNFGH)存储在一个字符串中,并将其相应的状态存储在 for 循环内的 bool 中。我该怎么做?

【问题讨论】:

  • 您能否将实际的 NSLog 输出剪切并粘贴到问题中?如果没有 NSLog 中的逗号和其他分隔符,数据的结构是不清楚的。

标签: iphone nsmutablearray


【解决方案1】:

假设我们将您的数组命名为yourArray

yourArray ->  {  ABSNFGH True,
                  FDGJDKG False,
                  GFKFLDL True,
                  PDHJHN True,
                  FHKDMD True,
                  DSHDMD False }

你需要添加这个循环:

for(int i = 0; i<[yourArray count];i++)
{
    NSArray *array = [[yourArray objectAtIndex:i] componentsSeperatedByString:@" "];
    if([array count]>1)
    { 
        NSString *stringValue = [array objectAtIndex:0];
        BOOL val = [[array objectAtIndex:1] boolValue];
    }
}

我认为这应该可行。我没有尝试过亲自实施它,但可能这会奏效。

编辑:

yourArray 理想情况下应该是这样的:

(  
  {
      stringVal = 'ABSNFGH' 
      boolVal = True
  },
  {
      stringVal = 'FDGJDKG' 
      boolVal = False
  },
  {
      stringVal = 'GFKFLDL' 
      boolVal = True
  }
)

请参阅此链接。在这里,您只需将object 替换为NSDictionary 即可。

Making an array of Objects in Objective-C.

在这里,我已从该链接修改了 ennukiller 的答案,以使您了解您的情况:

@接口控制器

NSMutableArray *yourArray;

@end
@implementation Controller

-(void) viewDidLoad {
................
NSMutableArray *yourArray = [NSMutableArray initWithCapacity:40];

}

-(IBAction)doSomeWork
{
      NSDictionary *object = [[NSDictionary alloc] init];
      [object setValue:@"ASDFG" forKey:@"stringVal"];
      [object setBool:False forKey:@"boolVal"];

      [yourArray addObject:object];

}
@end

希望这会有所帮助。

【讨论】:

  • 如果原始数组包含字符串,这应该可以工作,尽管您需要使用BOOL val = [[array objectAtIndex:1] boolValue]
  • @ikuragames:我现在已经编辑了我的答案。我只能将这种数组视为yourArray。更好的选择可能是将yourArray 作为字典数组,每个字典包含一个字符串和相关的 BOOL 值。但正如 Jean Paul Scott 所说,他并没有创建这个数组,这可能是唯一可行的方法。再次感谢!
  • 您能否解释一下我如何将yourArray 设为字典数组。那真的很有帮助。我希望你能把它和你的答案一起添加。
  • @JeanPaulScott 确定。但是您需要从您获得它的任何地方获取 yourArray 作为字典数组。我认为您正在从服务器获取这些值。我说的对吗?
  • @JeanPaulScott:现在检查我的答案。我已经编辑过了。我已在我的答案的 EDIT 部分中添加了您想要的内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多