W moim obecnym projekcie wewnątrz ViewController.m plików Używam metody:Pokonanie „wiele metod o nazwie«xxx:»znaleziono” błąd
[[connection writer] writeData: data];
Zwraca ostrzeżenie:
warning: multiple methods named 'writeData:' found
ja próbuje wywołać metodę:
- (void) writeData: (NSData*)data
... w TCPWriter.m. Niestety, istnieją dwa inne writeData
metody
- (void)writeData:(NSData *)data;
... w NSFileHandle.h i ...
- (BOOL)writeData:(NSData *)data
... w NSURLHandle.h. Jest to szczególnie mylące ponieważ [conn writer]
powinien zwrócić klasę TCPWriter
i ta klasa powinna wywołać poprawną metodę writeData
. Ponadto, nie jestem nawet całkowicie pewien, że NSFileHandle.h i NSURLHandle.h są nawet zawarte w dowolnej bibliotece zawartej w ViewController.h, a nie w innej części projektu.
Jak mogę pokazać kompilatorowi, którą metodę, którą chcę wywołać, writeData
i dlaczego ten błąd się pojawia?
Nie zdawałem sobie sprawy, że domyślnie zwrócił on identyfikator, gdy plik nie został jawnie zaimportowany. Dzięki! – Holtorf
Włącz ostrzeżenia i nie musisz się zastanawiać. Inne znaczniki linkera: -Wszystkie i włączaj jak najwięcej innych, w tym Traktuj ostrzeżenia jako błędy. –