Ich bin ziemlich neu in Objective C und iOS, derzeit versuche App Entwicklung mit dem iOS 6 SDK zu lernen. Ein Konzept, um das ich mich wirklich nicht kümmern kann, ist der Unterschied zwischen "_variable" und "self.variable", wenn auf die .m-Datei zugegriffen wird. Sind sie gleich? Oder anders?Was ist der Unterschied zwischen _variable & self.variable in Objective-C?
Es folgt eine einfache Probe
MyClass.h
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
@property (strong, nonatomic) NSString *myName;
@end
MyClass.m
#import "MyClass.h"
@interface MyClass()
@property (nonatomic, strong) NSString *anotherName;
@end
@implementation MyClass
- (void) myFunction {
_myName = @"Ares";
self.myName = @"Ares";
_anotherName = @"Michael";
self.anotherName = @"Michael";
}
@end
So gibt es einen Unterschied in den obigen Ausführungen eine Variable zu setzen? Variable "meinName" ist öffentlich, während "ein andererName" privat ist.
Würde ich sehr schätzen irgendwelche Eingaben. Vielen Dank!
möglich Duplikat [Differenz zwischen self.ivar und ivar?] (http://stackoverflow.com/q/4142177/), [Differenz zwischen dem selbst und normalen Variable] (http://stackoverflow.com/q/ 536388 /), [Eigenschaften und Zugriffsmethoden] (http://stackoverflow.com/q/6085080/), [Ivar-Eigenschaft, Zugriff über Self?] (Http://Stackoverflow.com/q/4088801/), [Wann man auf Eigenschaften mit self zugreift] (http://stackoverflow.com/q/4271657/), [Was ist der (Stil-) Unterschied zwischen "self.foo" und "foo" bei der Verwendung synthetisierter Getter?] (Http: //stackoverflow.com/q/3494157/) und [viele weitere] (http://stackoverflow.com/search?q=%5Bobjc%5D+self.ivar) –
Eigentlich ist diese Frage kein Duplikat. Als Anfänger habe ich nach dem Unterschied zwischen Variable und Selbst gesucht. Ich würde die Fragen ignorieren, die den Unterstrich nicht verwenden, also war dies der einzige für mich. Aber, @Josh, dein Kommentar hat mir trotzdem geholfen, zu verstehen, dass sie das Gleiche sind. – Arjan
Unterstriche ändern die Art oder Funktionalität von Ivars nicht im Geringsten: [Wie funktioniert ein Unterstrich vor einer Variablen in einer Cocoa/ObjC-Klasse?] (Http://stackoverflow.com/q/822487) –