我收到错误,“从cincompatible类型'id'分配给'BNRItem'”,尝试将不同的对象分配给在if块之外声明的变量。为什么我在声明变量并为其赋值时却没有得到相同的错误,但是当我尝试在if语句中重新分配它时会出错?谢谢你的帮助!
BNRItem *p = [[[BNRItemStore sharedStore] getHighValueItems] <== no error
objectAtIndex:[indexPath row]];
if(indexPath.section==1){
*p = [[[BNRItemStore sharedStore] getLowValueItems] <== error
objectAtIndex:[indexPath row]];
}
答案 0 :(得分:1)
删除*如此...
if(indexPath.section==1){
p = [[[BNRItemStore sharedStore] getLowValueItems] objectAtIndex:[indexPath row]];
}
您已经在if上方创建了指针,现在您只需指定值。
答案 1 :(得分:0)
只有在第一次声明变量时才应使用解除引用运算符(*)。
BNRItem *p = nil;
if(indexPath.section==1){
p = [[[BNRItemStore sharedStore] getLowValueItems]
objectAtIndex:[indexPath row]];
}