Когда я компилирую эти два источника с помощью xcode, я получаю предупреждение и ошибку:
- Неявное объявление функции shouldHavePlayed.(в строке с комментарием)
- ошибка при компоновке.
Но если вы посмотрите на код, метод определен в файле .h, файл .hвключение и перестановка методов в файле .m также не решают проблему.
Что не так с этим кодом?
TimerItem.h:
#import <Foundation/Foundation.h>
@interface TimerItem : NSObject {
BOOL enabled;
NSTimeInterval startTime;
NSTimeInterval repeatTime;
int sound;
int played;
}
- (void) play;
- (void) resetPlays;
- (BOOL) ShouldPlay : (NSTimeInterval) interval;
- (int) shouldHavePlayed : (NSTimeInterval) interval;
@end
TimerItem.m:
#import "TimerItem.h"
@implementation TimerItem
-(BOOL) ShouldPlay : (NSTimeInterval) interval {
int should = shouldHavePlayed(interval);//
return (should > played);
}
-(void) play {
played++;
}
-(void) resetPlays {
played = 0;
}
-(int) shouldHavePlayed : (NSTimeInterval) interval
{
if (interval < startTime) {
return 0;
}
else {
if (repeatTime > 0.0) {
return (int) floor((interval-startTime)/repeatTime)+1;
}
else {
return 1;
}
}
}
@end