Dokładnie rozumiem, dlaczego pojawiają się nieużywane ostrzeżenia o zmiennych. Generalnie nie chcę ich tłumić, ponieważ w większości przypadków są niezwykle przydatne. Rozważ jednak następujący (wymyślony) kod.
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
Xcode zgłasza, że saved
jest nieużywaną zmienną, chociaż oczywiście tak nie jest. Podejrzewam, że to dlatego, że NSAssert1
jest to makro. NS_BLOCK_ASSERTIONS
Makro nie zdefiniowane, więc twierdzenia Objective C są zdecydowanie włączone.
Chociaż niczego to nie boli, uważam to za nieporządne i denerwujące i chcę to stłumić, ale nie jestem pewien, jak to zrobić. Przypisanie zmiennej do samej siebie usuwa ostrzeżenie kompilatora, ale wolałbym zrobić to we „właściwy” sposób, jeśli coś takiego istnieje.
źródło
'saved' was marked as unused but was used
W Xcode możesz ustawić ostrzeżenia dla „Nieużywanych zmiennych”. Przejdź do „Ustawień budowania” dla celu i filtruj ze słowem „nieużywane”
Oto zrzut ekranu:
Sugeruję, aby zmienić to tylko dla debugowania. W ten sposób niczego nie przegapisz w swojej wydanej wersji.
źródło
Spróbuj w ten sposób. To działa dla mnie. Dla ciebie też zadziała.
źródło
'saved' was marked as unused but was used
Jedynym prostym i przenośnym sposobem oznaczenia zmiennej jako używanej jest… jej użycie.
Możesz być zadowolony z już opisanych rozszerzeń specyficznych dla kompilatora.
źródło
ŹRÓDŁO
źródło
spróbuj z atrybutem: __unused. Działa w Xcode 5
źródło
Można ustawić ostrzeżenie „Nie” kompilatora LLVM 2.0 dla „Wersja”
źródło
To jest sposób, w jaki robisz to w C, a zatem także w Objective-C.
Nawet jeśli nie masz włączonych ostrzeżeń, zawsze dobrze jest oznaczyć zwracaną wartość jako jawnie zignorowaną. Ma to również na celu pokazanie innym programistom, że nie tylko zapomnieliście o zwracanej wartości - faktycznie zdecydowaliście się ją zignorować.
EDYCJA: Kompilatory ignorują rzutowania do
void
, więc nie powinno to wpływać na wydajność - to tylko ładna, czysta ludzka adnotacja.źródło
(void)
to najwyraźniejszy sposób, dzięki!Niech zajmie dwie linie. Oddziel deklarację i wartość domyślną
źródło