Ich brauche wirklich eine Klarstellung - ich habe ein paar Fragen und ich bin jetzt alle durcheinander.Zeiger, Primitive und Eigenschaften in Objective-C-Klassen
Hier ist eine einfache Klasse, Schnittstelle:
#import <UIKit/UIKit.h>
@interface Car : NSObject{
NSInteger carID;
NSString *carName;
}
@property (nonatomic, assign) NSInteger carID;
@property (nonatomic, copy) NSString * carName;
@end
- Warum ist
carID
nicht als Zeiger deklariert? - Warum verwendet "assign" für
carID
statt "kopieren"? - Warum überhaupt Klassenmitglieder als Zeiger deklarieren? (In meinem Hauptprogramm, wird mein Auto Objekt als Zeiger verwendet werden.)
Andere einfache alte Datentypen, die wie Klassen aussehen: 'NSUInteger' (unsigned lang),' CGPoint', 'CGRect',' NSRange' (Strukturen), 'CGFloat' (double) –
Ah ok Weil in C++ können Sie haben Ganzzahlige Zeiger. Aber nicht in Objective C. – qstar
Eigentlich können Integer-Zeiger in Objective-C haben, da Sie in C können. Zeiger auf Primitive werden jedoch im Allgemeinen verwendet, wenn eine andere Funktion/Methode einen primitiven Wert direkt an eine bestimmte Adresse schreiben soll . Wenn Sie Objective-C-Eigenschaften verwenden, müssen Sie dies nicht tun, da Sie den in der Instanzvariablen bereitgestellten Wert kopieren. –