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 Objective-C : Sélectionner tout - Visualiser dans une fenêtre à part
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 Objective-C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
struct FGLObject_s {
    @defs(FGLObject)
};

après tu peux faire :

Code Objective-C : Sélectionner tout - Visualiser dans une fenêtre à part
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 (mon projet est aussi open-source).

Voilà, est-ce que vous avez des idées, suggestions ?

Merci