Ios 为什么会发生这样的警告?
我写了代码。Ios 为什么会发生这样的警告?,ios,objective-c,nsstring,warnings,Ios,Objective C,Nsstring,Warnings,我写了代码。 但其代码会出现警告。 其警告文本为 分配给“NSInteger*”的整数到指针转换不兼容 (又名“int*)来自“NSInteger”(又名“int”) 这是导致警告的代码 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { ... apd.newyear = [newys integerValue];//Its error h
但其代码会出现警告。
其警告文本为
分配给“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];
}
您已经将您的
NSInteger
实例变量声明为指针,它们不应该是指针(它们不是对象):
(或者您已通过@property
s执行此操作):
只需将它们更改为plain
NSInteger
错误非常明显
newyear
和newmonth
都有类型NSInteger*
,您正试图为它们分配一个NSInteger
NSInteger
不是一个对象,它是本机C值,因此您在定义apd
对象的两个属性时可能犯了错误
我打赌你一定有
@property NSInteger * newyear;
然而它应该是
@property NSInteger newyear;
我想你已经声明了
newmonth
和newyear
作为指针
@property (nonatomic) int *newyear;
@property (nonatomic) int *newmonth;
只需从这些行中删除*即可。我认为这可能很有用。试试看
@接口abc:NSObject
{
NSInteger firstint;
NSInteger-secondint;
}
@属性(非原子,读写)NSInteger firstint;
@属性(非原子,读写)NSInteger secondint;
@结束
你能展示什么是apd吗?请展示apd、newys和newms的定义。哦,实际上,你好像已经定义了一个属性作为指针。i、 e.@property(非原子)int*新年代码>只需删除*如果您阅读并理解上一个问题的答案,可能会有所帮助。
@property NSInteger newyear;
@property (nonatomic) int *newyear;
@property (nonatomic) int *newmonth;