Tôi đang cố gắng làm việc theo cách của mình thông qua hướng dẫn Mục tiêu-C. Trong cuốn sách có ví dụ này:Mục tiêu-C getter/setter
@interface
{
int width;
int height;
XYPoint *origin;
}
@property int width, height;
Tôi nghĩ, "này không có getter/setter cho đối tượng XYPoint. Mã hoạt động mặc dù." Bây giờ tôi sẽ có thể trả lời câu hỏi của riêng tôi :).
Tôi nghĩ mình bởi vì "gốc" là một con trỏ đã có, và whats xảy ra dưới mui xe với "width" và "height", là có đang xảy ra te được tạo ra một con trỏ cho họ ..
Am i phải, hoặc tôi đang nói BS :) ??
Tôi chỉ không hiểu. đây là chính:
#import "Rectangle.h"
#import "XYPoint.h"
int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Rectangle *myRect = [[Rectangle alloc] init];
XYPoint *myPoint = [[XYPoint alloc] init];
[myPoint setX: 100 andY: 200];
[myRect setWidth: 5 andHeight: 8];
myRect.origin = myPoint;
NSLog (@"Rectangle w = %i, h = %i",
myRect.width, myRect.height);
NSLog (@"Origin at (%i, %i)",
myRect.origin.x, myRect.origin.y);
NSLog (@"Area = %i, Perimeter = %i",
[myRect area], [myRect perimeter]);
[myRect release];
[myPoint release];
[pool drain];
return 0;
}
Và đây là đối tượng Rectangle:
#import "Rectangle.h"
#import "XYPoint.h"
@implementation Rectangle
@synthesize width, height;
-(void) setWidth: (int) w andHeight: (int) h
{
width = w;
height = h;
}
- (void) setOrigin: (XYPoint *) pt
{
origin = pt;
}
-(int) area
{
return width * height;
}
-(int) perimeter
{
return (width + height) * 2;
}
-(XYPoint *) origin
{
return origin;
}
@end
gì tôi không hiểu dòng này trong chính là: myRect.origin = myPoint;
tôi đã không làm cho một setter cho nó ..
BTW nhờ cho câu trả lời nhanh của bạn