Piszę rozszerzenie Swift do mojej klasy ObjC. Chociaż mój kod kompiluje i działa doskonale, Dostaję kilka Xcode ostrzeżeń (jeden na każdej metody Swift):Rozszerzenie Swift "Nie znaleziono definicji metody"
"Method definition for 'foo_method:' not found"
"Method definition for 'bar_method:' not found"
"Method definition for 'baz_method:' not found"
nie żyje proste odtworzyć wiadomość Xcode. Że wykonana ten projekt demo z czterech linii kodu nie schematycznych:
Cel -C (podklasa NSView)
// Subclass_of_NSView.h
#import <Cocoa/Cocoa.h
@interface Subclass_of_NSView : NSView
@end
// Subclass_of_NSView.m
@implementation Subclass_of_NSView
- (instancetype)initWithFrame:(NSRect)frame
//______________^ WARNING: Method definition for resizeSubviewsWithOldSize: not found
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
@end
Swift (rozszerza podklasy obj-C)
// Extension_of_Subclass.swift
import Foundation
extension Subclass_of_NSView {
override func resizeSubviewsWithOldSize(old_bounds_size:NSSize) {
}
}
pomostowymi -Header
// Demo_Project-Bridging-Header.h
#import "Subclass_of_NSView.h"
Zgaduję, że ostrzeżenia znikną, jeśli albo:
a) stwórz kilka fałszywych metod w pliku .m mojej klasy ObjC.
b) w rozszerzeniu Swift, rozszerz moją nadklasę klasy ObjC.
Nie kocham żadnego z tych rozwiązań.
Czy istnieje lepszy sposób, aby kompilator był szczęśliwy?
Powinieneś opublikować kod myślę, że –
Zrobiłem kilka zrzutów ekranu. Sam kod byłby prawdopodobnie mylący, ponieważ zaangażowane są potencjalnie 4 pliki. – Charlesism
Myślę, że to błąd, który powinien być zgłoszony – Sulthan