2011-06-03 60 views
1

我格式化ASIHTTPRequest发送阵列数据到服务器。我有一个数组的键(propertyKeys)和一个数组的信息(propertyValues),并创建了一个循环来设置帖子和键值。- [NSURL objectAtIndex:]:无法识别的选择器发送到实例0x4e1d6d0 ASIHTTPRequest

for(int i = 0;i<13;i++){ 
    [request setPostValue:[propertyValues objectAtIndex:i] forKey:[propertyKeys objectAtIndex:i]]; 
} 

我收到以下错误,但是:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURL objectAtIndex:]: unrecognized selector sent to instance 0x4e1d6d0' 

我试图来查找AHIHTTPRequest的文件,但该网站似乎是下降。

回答

2

错误是否发生在您发布的代码或其他地方?在调试模式下运行应用程序(Cmd-Y)可让您跟踪堆栈跟踪,确切了解发生崩溃的位置。这就是说,如果崩溃发生在您发布的内容中,那么可能意味着propertyKeyspropertyValues已被释放,并且其指针现在是垃圾。确保他们没有得到释放或自动释放到你的程序的那部分时间。

+0

所以,而不是通过像NSArray propertyValues = [NSArray withObjects ...]来定义它们,我应该初始化它,还是我只需要在赋值变量后立即调用retain? – Chris 2011-06-03 23:20:58

+0

废话不要说,你是对的。最初我将它们组合成一个NSDictionary,然后释放数组。接得好! – Chris 2011-06-03 23:21:52

0

您意外地将NSURL而不是NSArray指定为properyValuespropertyKeys。在这一点上检查它们在调试器中的含义。

在很多情况下,编译器在执行此操作时会发出警告。确保你的代码没有警告。在Objective-C中,警告几乎总是错误,不应该被忽略。

相关问题