Objective-C Access @private переменные экземпляра из другого класса - PullRequest
1 голос
/ 19 декабря 2011

Я смотрел на этот вопрос и наткнулся на следующий код в одном из ответов

@interface MyClass : NSObject
{
    @private
    int someVar;  // Can only be accessed by instances of MyClass

    @public
    int aPublicVar;  // Can be accessed by any object
}
@end

Есть ли в любом случае доступ к someVar из любого другого класса (включая производные классы)?

Ответы [ 2 ]

4 голосов
/ 19 декабря 2011

Как и в большинстве динамических языков, вы можете получить эту информацию в Objective C, однако, это больно. Посмотрите здесь пример .

0 голосов
/ 19 декабря 2011

Нет. Это именно то, что означает @private. Компилятор явно запрещает любому другому классу (даже подклассам) доступ к этому ivar.

@public означает, что любой может получить доступ к ivar, а @protected означает, что подклассы могут получить к нему доступ, но другие классы не могут.

...