Istnieje (bardzo prawdopodobne) nie ma powodu, aby nie chcieć dziedziczyć po NSObject, ale istnieje wiele dobrych powodów, aby to zrobić.
Byłbym ciekawy co do przyczyny, dlaczego nie chcesz dziedziczyć po NSObject. Przypuszczam, że wynika to z braku wiedzy, a nie z rzeczywistej potrzeby.
Ale nawet bez znajomości tego powodu: Nie rób tego. Ciężko jest to zrobić tak dobrze, że nadal jest przyjemny w innych klasach Objective-C, ponieważ jest praktycznie niemożliwy.
W każdym razie, tworzysz swoje obiekty w sposób, który ukrywa to, co naprawdę zostało zrobione.Podczas gdy w Javie, zwykle tworzyć instancje metodą domyślnego konstruktora new
, w Objective-C jest utworzenie instancji poprzez wywołanie alloc
na klasie, a następnie init
na przykład:
Person *aPerson = [[Person alloc] init];
(Jest możliwe po prostu użyć Person new
, ale nie zrobiłbym tego, ponieważ ukrywa to, co naprawdę zostało zrobione od ciebie)
Wdrażasz swoją klasę tak, że dziedziczysz od NSObject, a następnie, jeśli to konieczne, napisz własną metodę init
.
Jeśli chcesz się zalogować do konsoli, użyj NSLog
:
NSLog(@"Hello %@", @"Steven");
(@""
jest specjalny konstruktor dla NSString Struny w Objective-C nie są tablicami bajtów, ale obiekty.).
Co jest nie tak z 'Person' dziedziczącym po' NSObject'? – Costique
+1, ponieważ jest to bardzo interesujące pytanie, chociaż praktyczna wartość może być bardzo mała. – vikingosegundo
@Costique: Nic, po prostu istnieje wiele tutoriali, które znalazłem w Internecie nie wspominając, że jest to wymaganie (tj. Dziedziczenie z NSObject). przykład: http://pl.wikibooks.org/wiki/Objective-C_Programming/syntax Próbowałem dziedziczyć z Object, ale '[Person new]' nie działa zbyt – Hao