Question

Je comprends que @synthétiser autocreates les getters et setters pour une variable d'instance.Alors que j'ai spécifié l' = _something partie, je comprends que cela informe le compilateur/runtime que je veux utiliser une sauvegarde de variable pour les getters/setters.

N'Objective-C autocreate la _something variable avec mon getters/setters ou devrais-je être la définition de cette variable d'instance dans mon interface/l'application fichier?

Était-ce utile?

La solution

La question est de savoir si @de la propriété dans le fichier d'en-tête et @synthétiser dans la mise en œuvre crée le sous-jacent ivar ou si le ivar a pour répertoriés dans le fichier d'en-tête.Exemple, dans le fichier d'en-tête:

@interface SomeClass : NSObject {
    NSString *_someString;    // Is this needed???
}
@property NSString *someString;

et dans la mise en œuvre:

@synthesize someString = _someString;

La réponse est que cela dépend de si oui ou non vous êtes à l'aide de l'héritage ou de la modernité de l'exécution.Dans iOS, vous êtes toujours en utilisant la moderne de l'exécution afin que vous n'avez jamais besoin de l' NSString *_somestring ligne, mais cette question est à propos de Mac OS X.Pour Mac OS X si vous utilisez un programme 64 bits sur Mac OS X 10,5 ou plus tard, vous êtes à l'aide de la moderne de l'exécution, sinon, vous devez utiliser l'héritage d'exécution et le besoin de la ligne supplémentaire dans votre fichier d'en-tête.Depuis il y a eu beaucoup de désinformation posté, voici une référence: Objective-C Runtime Guide De Programmation.

Autres conseils

Désolé, mal interpréter une partie de votre question.Si vous faites la partie @synthésize avec le soulignement, vous êtes tous bien.Pas besoin de définir explicitement un ivar.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top