我遵循Objective-C代码。但是我不了解
-
什么是
alloc
,init
中的CC_2? -
此方法来自何处?
setModel
//car.h
#import <Foundation/Foundation.h>
@interface Car : NSObject {
}
@property (copy) NSString *model;
- (void)drive;
@end
//car.m
#import "Car.h"
@implementation Car {
double _odometer;
}
@synthesize model = _model;
- (void)drive {
NSLog(@"Driving a %@. Vrooooom!", self.model);
}
@end
//main.m
#import <Foundation/Foundation.h>
#import "Car.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Car *toyota = [[Car alloc] init];
[toyota setModel:@"Toyota Corolla"];
NSLog(@"Created a %@", [toyota model]); // SQL: Insert into Car value
toyota.model = @"Toyota Camry"; // SQL: Update car set model=''
NSLog(@"Changed the car to a %@", toyota.model);
[toyota drive]; // SQL: Select *from Car
}
return 0;
}
alloc
和 init
是从NSObject
继承的,它们初始化了您的新Car
。setModel:
是从您的@synthesize
D属性model
自动生成的(方法model
也是为了获取其值)。您可以根据需要覆盖这些方法来进行额外的工作。另外:在现代Objective-C中,属性登录器(" dot")语法通常比明确调用Getter/setter方法优先。