[DEV] Protéger les données des objets en objective-C
Bonjour à tous,
Depuis quelques temps je me suis remis à mon projet d'interface graphique (voir le sujet) et avec PsychoH13 j'ai réfléchi sur un point. Je souhaite créer un compteur de référence comme dans Cocoa (nb: ma bibliothèque est portable, donc indépendante de Cocoa) mais apparemment il y a toujours moyen d'y accéder d'une façon ou d'une autre alors que j'aimerais protéger le compteur contre tout accès extérieur.
La méthode la plus simple est celle que j'utilise actuellement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| #import <objc/Object.h>
#import <stdlib.h>
@interface FGLObject : Object {
@private
size_t ref;
}
- (id)retain;
- (oneway void)release;
@end |
Citation:
Envoyé par PsychoH13
bah on peut y accéder en faisant un simple @def:
Code:
1 2 3
| struct FGLObject_s {
@defs(FGLObject)
}; |
après tu peux faire :
Code:
1 2
| struct FGLObject_s *o = [[FGLObject alloc] init];
o->ref = 3; |
Et sinon…
Citation:
Envoyé par PsychoH13
si tu veux décourager les utilisateurs de modifier le refCount eux-mêmes, tu peux masquer le refCount comme le fait GNUStep, mais après...
…mais après suffit de regarder les sources pour savoir comment accéder au compteur :mrgreen: (mon projet est aussi open-source).
Voilà, est-ce que vous avez des idées, suggestions ?
Merci :)