Изменение определения NSObject, приводящее к нераспознанному селектору - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь настроить NSObject для принятия дополнительного параметра, однако всякий раз, когда я пытаюсь добавить это, я получаю:

NSInvalidArgumentException: -[TEATimeRange initWithStart:end:fill:]: unrecognized selector sent to instance`

Вот файл .h:

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface TEATimeRange : NSObject

@property (nonatomic) NSDate *start;
@property (nonatomic) NSDate *end;
@property (nonatomic) IBInspectable UIColor *fill;

+ (instancetype)timeRangeWithStart:(NSDate *)startTime end:(NSDate *)endTime fill:(UIColor *)fillColor;

- (id)initWithStart:(NSDate *)startTime end:(NSDate *)endTime fill:(UIColor *)fillColor;

@end

и файл .m:

#import "TEATimeRange.h"

@implementation TEATimeRange

+ (instancetype)timeRangeWithStart:(NSDate *)startTime end:(NSDate *)endTime fill:(UIColor *)fillColor
{
    return [[TEATimeRange alloc] initWithStart:startTime end:endTime fill:fillColor];
}

- (id)initWithStart:(NSDate *)startTime end:(NSDate *)endTime fill:(UIColor *)fillColor
{
    self = [super init];
    if (self) {
        _start = startTime;
        _end = endTime;
        _fill = fillColor;
    }
    return self;
}

@end

Экземпляр вызова (в Swift):

TEATimeRange(start: someDateTime, end: someDateTime?.addingTimeInterval(TimeInterval(someTime)), fill: .orange)

Если я удаляю ссылки на fill:, он работает как положено, поэтому я не понимаю, почему.

Я пытался выполнить SO-поиск, но, поскольку у меня есть только 3-дневный опыт разработки под iOS, я не смог найти никакого решения, поэтому любая помощь будет принята с благодарностью. (Даже если это глупо!)

1 Ответ

1 голос
/ 16 апреля 2019

Для будущих разработчиков, которые попадут на эту страницу, моя проблема была решена следующим образом:

  1. Чистая папка сборки (Продукт> Чистая папка сборки или K )
  2. Перезапуск Xcode
  3. Перезапуск приложения

См. Комментарии выше от @OOPer и @rmaddy для получения дальнейших указаний, если это не работает

...