#import <Foundation/Foundation.h>
@interface Visibility : NSObject {
@public
BOOL boolPublic;
@protected
BOOL boolProtected;
@private
BOOL boolPrivate;
}
@property (nonatomic, assign) BOOL boolPublic;
@property (nonatomic, assign) BOOL boolProtected;
@property (nonatomic, assign) BOOL boolPrivate;
@end
@implementation Visibility
@synthesize boolPublic;
@synthesize boolProtected;
@synthesize boolPrivate;
@end
int main(int argc, char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Visibility *visibility = [[Visibility alloc] init];
visibility.boolPublic = YES;
visibility.boolProtected = YES;
visibility.boolPrivate = YES;
// Place following NSLog()'s here
[pool release];
}
のは、あなたが@プロパティ/ @を定義する方法を使用して
を、これを試してみましょアクセス
NSLog(@"Accessors %d %d %d", visibility.boolPublic, visibility.boolProtected, visibility.boolPrivate);
=> 2012-01-08 17:46:40.226 Untitled[2592:707] Accessors 1 1 1
を合成@直接公共のivar
NSLog(@"Public %d", visibility->boolPublic);
=> 2012-01-08 17:46:40.228 Untitled[2592:707] Public 1
@protected IVARにアクセスし、直接
NSLog(@"Protected %d", visibility->boolProtected);
=> error: instance variable 'boolProtected' is protected
=> NSLog(@"Protected %d", visibility->boolProtected);
=> ^
@private IVARへのアクセスを直接
NSLog(@"Private %d", visibility->boolPrivate);
=> error: instance variable 'boolPrivate' is private
=> NSLog(@"Private %d", visibility->boolPrivate);
=> ^
あなたは、ドット表記を使用してアクセスしている本:
visibility.boolPublic
と等価である:
[visibility boolPublic]; // <- This is a method call
フレームワークへの可視性を制限@package。 – Abizern