我写了代码。
但是它的代码发出警告。
其警告文字为
不兼容的整数到指针转换分配给'NSInteger *' (又名'int *')来自'NSInteger'(又名'int')
这是导致警告的代码。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
apd.newyear = [newys integerValue];//Its error happen on this row.
apd.newmonth = [newms integerValue];//Its error happen on this row.
[self dismissViewControllerAnimated:YES completion:nil];
}
答案 0 :(得分:13)
错误很清楚。
newyear
和newmonth
都有NSInteger *
类型,您正在尝试为其分配NSInteger
。
NSInteger
不是对象,它是本机C值,因此您可能在定义apd
对象上的两个属性时出错。
我打赌你有类似
的东西@property NSInteger * newyear;
然而它应该是
@property NSInteger newyear;
答案 1 :(得分:2)
您已将NSInteger
个实例变量声明为指针,它们不应该是(它们不是对象):
@interface apd : NSObject
{
NSInteger *newyear;
NSInteger *newmonth;
}
...
@end
(或者你是通过@property
s)完成的:
@property (assign, nonatomic) NSInteger *newyear;
@property (assign, nonatomic) NSInteger *newmonth;
只需将其更改为普通NSInteger
。
答案 2 :(得分:2)
我认为您已将newmonth
和newyear
声明为指针......
@property (nonatomic) int *newyear;
@property (nonatomic) int *newmonth;
只需从这些行中删除*。
答案 3 :(得分:0)
我认为这可能有用......但是它
@interface abc : NSObject
{
NSInteger firstint;
NSInteger secondint;
}
@property (nonatomic,readwrite) NSInteger firstint;
@property (nonatomic,readwrite) NSInteger secondint;
@end