下标需要接口'NSArray'的大小,这在非稳定的ABI中不是常数

Chr*_*ris 3 objective-c nsarray asihttprequest

我正在尝试使用ASIHTTPRequest将信息发送到服务器,并设置如下的post值:

    for(int i = 0;i<13;i++){
  [request setPostValue:propertyValues[i] forKey:propertyKeys[i]]    
}
Run Code Online (Sandbox Code Playgroud)

propertyValues和propertyKeys都是NSArray对象,每个对象包含13个项目.当我运行它时,我得到错误"下标需要接口大小'NSArray',这在非稳定的ABI中不是常数"

这是什么意思?

Ada*_*ght 20

这意味着您正在尝试访问一个NSArray*数组,或者您可以使用的算法.x[5]对于指针类型相当于x + sizeof(x) * 5.注意sizeof运算符 - 这意味着编译器需要知道类型的大小以使指针前进5"项".但是,NSArray是一个Objective C接口,并且编译器无法确定该类型的大小.这解释了你得到的错误的措辞.

更具说服力的是,您无法访问NSArray此类对象.您需要向他们发送一条消息,询问给定索引处的项目,因此:

[propertyValues objectAtIndex:i];
Run Code Online (Sandbox Code Playgroud)