【问题标题】:What is in my NSArray?我的 NSArray 中有什么?
【发布时间】:2014-02-19 12:31:18
【问题描述】:

我有一个NSArray,由以下人员填充:

NSString *strURL = [NSString stringWithFormat:@"%@%@", @"http://website/getinfo.php?dept=", dept];
NSArray *arrayDetail = [[NSMutableArray alloc] initWithContentsOfURL:[NSURL URLWithString:strURL]];

SQL 数据库是空的,但是在调用 arrayDetail 之后有“一个对象”,但我不知道这个对象是什么。

我试过了:

NSLog(@"value - %@", [arrayDetail objectAtIndex:0]);

显示的NSLog是“值-”

我试过了:

if ([arrayDetail objectAtIndex:0]  == (id)[NSNull null])
{
   NSLog(@"null");
}
else
{
 //do other stuff
}

但它会跳过“做其他事情”。

我也试过了:

if ([[arrayDetail objectAtIndex:0]  isEqualToString:@""])

但它再次跳到“做其他事情”。

有什么想法吗?

更新:

按照我尝试过的以下建议:

 NSLog(@"value - %@", [arrayDetail class])

响应:

值 - __NSCFConstantString

【问题讨论】:

  • 断点和NSLog(@"%@", [arrayDetail.lastObject class])呢?
  • 请使用 NSLog(@"%@", arrayDetail);然后您可以检查 0 索引上的任何值。
  • 如果你使用NSLog(@"%@", arrayDetail);,它应该打印出() 字符,其中包含数组元素。如果不是,那么您可能从数组创建操作中收到了 nil 值,因为 URL 是伪造的。我的猜测是 URL 是伪造的。
  • 这是结果:值 - ( "" ) 。我知道 URL 不是伪造的,因为当数据在 SQL 数据库中时,我得到了正确的结果。

标签: ios objective-c


【解决方案1】:

可能包含转义字符。 & 检查 NSArray - NSLog(@"Res %@",arrayDetail);

试试这个:

if ([arrayDetail objectAtIndex:0]  == (id)[NSNull null] || [[arrayDetail objectAtIndex:0]length] < 1)
{
   NSLog(@"null");
}
else
{
 //do other stuff
}

【讨论】:

  • 这可以完成工作 - 谢谢。我仍然想知道问题的根源(即数组中的内容是什么)但这非常有效。
【解决方案2】:

只有当您的 Web 服务提供由 writeToURL:atomically: 方法生成的数组的字符串表示形式时,该数组才会包含任何有用的内容。

由于 Web 服务通常不会发生这种情况,因此您将有块但没有内容。可能它甚至没有初始化但为零。从而显示你得到的行为。

【讨论】:

    【解决方案3】:

    检查

    if ([[arrayDetail objectAtIndex:0]  isEqualToString:@""])
    

    而不是

    if ([[observationsArrayClass objectAtIndex:0]  isEqualToString:@""])
    

    让我知道你的输出。当你的输出存储在 arrayDetail 中时,为什么你使用observationsArrayClass?

    【讨论】:

    • 好的,那么您是否同时检查了 null 和空字符串?检查对象中是否有空格。检查浏览器中的网址并告诉我
    • 当我在浏览器中检查 URL 时,我得到 ("")
    【解决方案4】:

    documentationinitWithContentsOfURL:

    [It] 如果位置无法打开或位置的内容无法解析为数组,则返回 [a] nil。

    【讨论】:

      猜你喜欢
      • 2016-02-18
      • 1970-01-01
      • 2011-11-24
      • 2010-11-04
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多