Sono abbastanza nuovo per Objective C e iOS, attualmente sto cercando di imparare lo sviluppo di app utilizzando l'SDK di iOS 6. Un concetto che non riesco davvero a comprendere è la differenza tra "_variable" e "self.variable" quando si accede al file .m. Sono gli stessi? O diverso?Qual è la differenza tra _variable e self.variable in Objective-C?
seguito è un semplice campione di
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
Quindi c'è una differenza nelle implementazioni di cui sopra per impostare una variabile? La variabile "myName" è pubblica mentre "anotherName" è privata.
Apprezzerebbe molto qualsiasi input. Grazie!
possibile duplicato di [Differenza tra self.ivar e ivar?] (Http://stackoverflow.com/q/4142177/), [Differenza tra auto e variabile normale] (http://stackoverflow.com/q/ 536388 /), [Proprietà e accessorie] (http://stackoverflow.com/q/6085080/), [proprietà Ivar, accesso via self?] (Http://stackoverflow.com/q/4088801/), [Quando accedere alle proprietà con self] (http://stackoverflow.com/q/4271657/), [Qual è la differenza (stile) tra "self.foo" e "foo" quando si utilizzano getter sintetizzati?] (Http: //stackoverflow.com/q/3494157/) e [molti altri] (http://stackoverflow.com/search?q=%5Bobjc%5D+self.ivar) –
In realtà questa domanda non è un duplicato. Come principiante, ho cercato la differenza tra variabile e auto variabile. Ignorerei le domande che non usano il carattere di sottolineatura, quindi questo era l'unico per me. Ma, @Josh, il tuo commento mi ha aiutato comunque, a capire che sono la stessa cosa. – Arjan
I caratteri di sottolineatura non modificano minimamente la natura o la funzionalità di ivars: [Come funziona una sottolineatura di fronte a una variabile in una classe Cocoa/ObjC?] (Http://stackoverflow.com/q/822487) –