D'après ce que j'ai expérimenté, il semble que les objets ne peuvent pas être des membres de données partagées dans l'objectif c. Je sais que vous pouvez init un pointeur et allouer l'objet dans chaque méthode mais je n'arrive pas à comprendre comment on peut définir un NSMutableString en tant que membre de données et permettre à toutes les méthodes d'utiliser et de modifier ses données comme en C++. Est-ce vrai ou ai-je oublié quelque chose?Objet en tant que membre de données dans l'objectif C
Répondre
Il semble que vous souhaitiez synthétiser (créer des méthodes getter/setter) une propriété pour une variable membre. Je viens de trouver this cheat sheet, allez à la section intitulée, "Propriétés", devrait donner un aperçu rapide.
Autre que Apple's documentation devrait vous donner plus d'informations.
Merci c'était juste ce que je cherchais ces deux lignes m'ont sauvé de grand chagrin: [totalAmount autorelease]; totalAmount = [input retain]; Je n'avais pas réalisé que l'iphone n'avait pas de garbage collection automatique. – jcb344
Pour définir une variable d'instance (membre), modifiez votre fichier .h
:
@interface MyClass : NSObject {
// ivars go here
NSObject *member;
}
// methods go here
@end
Ensuite, dans votre fichier .m
, de toute méthode d'instance (celui qui commence par -
), vous pouvez accéder à cette variable.
- (void)doThingWithIvar {
[member doThing];
}
Si vous souhaitez accéder à la variable de l'extérieur l'objet lui-même, vous aurez besoin d'accesseurs. Vous pouvez le faire facilement avec des propriétés Obj-C:
@interface MyClass : NSObject {
// ivars go here
NSObject *member;
}
// methods go here
@property (nonatomic, retain) NSObject *member;
@end
Et dans le .m
:
@implementation MyClass
@synthesize member;
// ...
@end
La ligne @synthesize
crée des méthodes getter/setter pour l'Ivar. Ensuite, vous pouvez utiliser la syntaxe de la propriété:
MyClass *thing = ...;
NSLog(@"%@", thing.member); // getting
thing.member = obj; // setting
(Notez que j'ai spécifié (retain)
pour le @property
, si votre membre n'est pas un objet Objective-C vous ne voulez pas que Et si la classe de votre propriété a une mutable. contrepartie, vous aurez besoin (copy)
à la place.)
- 1. PHP Objet appelable en tant que membre de l'objet
- 2. Pointeur de fonction C++ en tant que membre statique
- 3. Principes de base OOP C++ (affectation d'un objet en tant que membre)
- 4. Une classe C++ peut-elle s'inclure en tant que membre?
- 5. Essayer de reconnaître _NSFaultingMutableSet en tant que membre de NSSet
- 6. Membre de dimension en tant que mesure calculée dans MDX
- 7. Objet en tant que tableau
- 8. Déclarer un ENUM en tant que membre de la classe
- 9. YAML en tant que DSL de données dans .NET (C#)
- 10. objet modèle en tant que membre statique de la classe de modèle
- 11. Seq seq type en tant que paramètre membre dans F #
- 12. Utilisation d'une fonction de membre de classe C++ en tant que fonction de rappel C
- 13. Objet en tant que clé de hachage
- 14. Création d'un vecteur C++ en tant que membre d'une classe utilisant un pool de mémoire
- 15. STL Container en tant que membre privé. Erreur de segmentation
- 16. C# Objet en tant que problème clé du dictionnaire
- 17. Dois-je lier sqlite3 en tant que code objet brut ou en tant que bibliothèque statique dans une application C++?
- 18. Objet de coulée en tant que hachage dans le prototype
- 19. Marshaling un tableau de char de longueur fixe bidimensionnel C++ en tant que membre de structure
- 20. Retour d'un objet en tant que propriété dans ATL
- 21. Modélisation d'enregistrements de base de données en tant que types
- 22. classe C++ déclarée en tant que membre de la classe statique
- 23. OAuth en C# en tant que client
- 24. L'utilisation correcte du tableau en tant que membre de domaine en VB 2005
- 25. Passez Viewdata en tant que membre à partir d'autres données à RenderPartial rend le premier null
- 26. Les données de code dans codeigniter peuvent être récupérées en tant que tableau ou objet?
- 27. Activer l'application C en tant que Webservice
- 28. Collections en tant que décorateurs en C#
- 29. Dictionnaire C# en tant que ListBox.DataSource
- 30. Utilisation d'un objet en tant que clé de dictionnaire générique
Avez-vous fourni des méthodes d'accesseur pour votre NSMutableString, ou le déclarer comme une propriété? – dreamlax
Hé, ça doit être un de ces angles morts que tout le monde rencontre quand il apprend de nouvelles langues. Vous êtes tellement coincé dans les formes de votre propre langue que vous ne pouvez pas voir quelque chose de simple et évident. Tu vas te donner un coup de pied. ;-) – TechZen