2

我写了代码。

但它的代码发生警告。

它的警告文本是

从'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];

}
4

4 回答 4

13

错误很明显。

newyear并且newmonth两者都有类型NSInteger *,并且您正在尝试为NSInteger它们分配 a 。

NSInteger不是对象,它是本机 C 值,因此您在定义apd对象的两个属性时可能犯了一个错误。

我打赌你有类似的东西

@property NSInteger * newyear;

而它应该是

@property NSInteger newyear;
于 2013-08-21T14:16:51.060 回答
2

您已将NSInteger实例变量声明为指针,它们不应该是指针(它们不是对象):

@interface apd : NSObject
{
    NSInteger *newyear;
    NSInteger *newmonth;
}
...
@end

(或者你已经通过@propertys 完成了这个):

@property (assign, nonatomic) NSInteger *newyear;
@property (assign, nonatomic) NSInteger *newmonth;

只需将它们更改为 plain NSInteger

于 2013-08-21T14:16:47.343 回答
2

我想你已经宣布newmonthnewyear作为指针......

@property (nonatomic) int *newyear;
@property (nonatomic) int *newmonth;

只需从这些行中删除 *。

于 2013-08-21T14:17:03.630 回答
0

我认为这可能有用..试试看

@interface abc : NSObject { NSInteger firstint; NSInteger secondint; } @property (nonatomic,readwrite) NSInteger firstint; @property (nonatomic,readwrite) NSInteger secondint; @end

于 2013-08-22T08:58:59.547 回答