Конфликтующий тип параметра в реализации NSInteger против NSInteger*
В реализации есть "конфликтующий тип параметра...", как вы можете видеть на рисунке ниже. Этот код работает хорошо, но предупреждение не исчезнет. Может кто-нибудь объяснить, что здесь происходит
В файле.h
@property (nonatomic) NSInteger score;
@property (nonatomic) NSInteger topScore;
В файле.m
-(void)setScore:(NSInteger *)score
{
_score = score;
scoreLabel.text = [[NSNumber numberWithInteger:(long)self.score] stringValue];
}
-(void)setTopScore:(NSInteger *)topScore
{
_topScore = topScore;
topScoreLabel.text = [[NSNumber numberWithInteger:(long)self.topScore] stringValue];
}
1 ответ
Решение
Это потому что NSInteger
это примитивный тип, а не объект. Он должен быть передан по значению, а не по указателю, т.е. без звездочки:
-(void)setScore:(NSInteger)score {
_score = score;
scoreLabel.text = [[NSNumber numberWithInteger:(long)self.score] stringValue];
}
То же самое касается setTopScore:
метод.