引用实例变量或属性

时间:2013-07-25 08:17:53

标签: objective-c

想象我的班级声明如下:

@interface MapViewController : UIViewController <MKMapViewDelegate>
{

}

@property (nonatomic,weak) IBOutlet MKMapView *mapV;

@end

这是实施:

#import "MapViewController.h"
#import <CoreLocation/CoreLocation.h>

@interface MapViewController ()

@end

@implementation MapViewController

@synthesize mapV;


- (void)viewDidLoad
{
    [super viewDidLoad];
    [mapV setShowsUserLocation:YES];
}

我的问题是,通过使用上面的mapV(在viewDidLoad中)我是指实例变量还是调用属性? (在这种情况下,引用实例变量的正确方法是什么?)。

1 个答案:

答案 0 :(得分:2)

如果您使用:

mapV

您正在直接访问实例变量。

如果您使用:

self.mapV

您正在通过setter / getter访问变量,并使用您设置的属性定义那些setter / getter。

根据经验,您希望直接在init方法中访问ivar,并在您使用self的其他类中访问。

如果您想了解更多信息,请点击以下链接:

Encapsulating data in Objective-C