Я конвертирую весь свой проект из Objective-C в Swift ... во время конвертации я получаю эту проблему как "Невозможно преобразовать значение типа 'Facility' в ожидаемый тип аргумента" Facility! "
Ошибка в последнем коде файла, который я упоминал, который упоминается в комментарии.
"Невозможно преобразовать« Facility »в ожидаемый тип аргумента« Facility! »
Код:
Файл TheFacility.h:
#import <Foundation/Foundation.h>
@interface FacilityDataModel : NSObject
- (BOOL)save:(Facility *)facility;
@end
Файл TheFacility.m:
#import "FacilityDataModel.h"
@implementation Facility
… // many other methods...
- (void)save
{
FacilityDataModel *facilityDataModel = [[FacilityDataModel alloc] init];
[facilityDataModel save:self];
}
… // many other methods...
@end
Файл TheFacilityDataModel.m имеет метод:
-(BOOL) save: (Facility *) facility
{
if ([facility m_ID] == nil)
{
NSLog(@“Saving Facility Code”);
return true;
}
return false;
}
Теперь преобразованный файл «Facility.swift» в swift:
import Foundation
class Facility: NSObject {
…
func save() {
let facilityDataModel = FacilityDataModel()
facilityDataModel.save(self) ///Its showing dialog “Cannot convert “Facility” to expected argument type “Facility!”
}
…
}
Примечание: Пожалуйста, ответьте с решением, которое не заставит меня изменить код Objective-C, так как я хочу, чтобы оба кода Swift и Objective-C работали вместе в моем проекте и не могу изменить этот код Objective-C.
Я не конвертирую классы DataModel в swift, как сейчас ... поэтому я должен использовать этот существующий класс DataModel Objective-C в swift ... и он также импортируется в заголовочный файл ... остальные настройки о них тоже заботятся и ничего страшного ... никаких других проблем, кроме этой ...