我有一些关于Objective-C的基本问题:
予。当我想访问对象的实例方法时,我是否总是必须先分配它才能访问该方法?即使我已经在其他地方分配了它?
E.G:
CustomPerson *person = [[CustomPerson alloc] init];
[person getName];
// can't I do something like this? (
[get_instance_of_already_somewhere_allocated_person getName];
II。作为初学者,我应该从启用ARC开始吗?
III。实例变量和@ property-variables有什么区别?我的意思是当我在我的方法中访问它们时,它们在我的实例中是不是都是“全局的”?
E.G:
// CustomPerson.h
@interface CustomPerson : NSObject {
UIImageView *_person;
}
@property (nonatomic, strong) UIImageView *img;
// CustomPerson.m
@implementation CustomPerson
@synthesize img = _img;
- (id)init
{
img.image = @"someimage.png";
_person.image = @"someimage.png";
[self setImageToSomeOtherImage:@"rustyimage.png"];
}
- (void)setImageToSomeOtherImage:(NSString *)img
{
// img.image before was "someimage.png"
img.image = img;
// _person.image before was "someimage.png"
_person.image = img;
}
@end
答案 0 :(得分:1)
简而言之:
予。使用您必须首先分配和初始化的对象。完成此操作后,您可以多次使用该对象,在其上调用方法等等。
II。我推荐使用ARC。这对你来说会更简单。一旦掌握了更多知识,就可以回过头来理解内存管理。
III。属性是一个带有setter和getter的实例变量。 Apple建议您只在init或dealloc方法中直接访问实例变量。在其他方法中,您应该使用getter和setter来获取/更改实例变量。