Глобальные переменные в Цели C - PullRequest
2 голосов
/ 29 июня 2010

У меня есть счетчик, который я использую для получения объекта по индексу счетчиков, и мне нужен доступ к нему в другом классе.

Как статические переменные объявляются в Objective C?

Ответы [ 2 ]

2 голосов
/ 29 июня 2010

Вместо того, чтобы сделать его глобальным, предоставить одному классу доступ к счетчику другого класса, или пусть оба класса совместно используют третий класс, которому принадлежит счетчик:

ClassA.h:
@interface ClassA {
    int counter;
}
@property (nonatomic, readonly) int counter;

ClassA.m
@implementation ClassA
@synthesize counter;

ClassB.h:
#import "ClassA.h"
@interface ClassB {
    ClassA *a;
}

ClassB.m:
@implementation ClassB
- (void)foo {
    int c = a.counter;
}
1 голос
/ 29 июня 2010

Привет, алДжери,Вы объявляете статическую переменную в реализации вашего класса и разрешаете доступ к ней через статические методы доступа: some_class.h: @interface SomeClass {...} + (int)counter; @end some_class.m: @implementation SomeClass static int counter; + (int)counter { return counter; } @end

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...