Я попробовал это быстро через несколько минут.Я никогда не пытался создать проект Mac OS X, только проекты Foundation и iPhone, но идея кажется одинаковой.Я создал проект приложения какао "Stack1".Я предполагаю, что вы сделали то же самое, потому что я не думаю, что проект Foundation будет поддерживать структуры CGRect без ручного импорта CGGeometry.h или чего-то еще ... В любом случае, я установил новый класс Objective C под названием "Mapper" и реализовалinitWithSourceFrame: mappedFrame: указанный вами метод.
Mapper.h
#import <Cocoa/Cocoa.h>
@interface Mapper : NSObject {
}
-(id) initWithSourceFrame:(CGRect) sourceViewFrame mappedFrame:(CGRect) mappedViewFrame;
@end
Mapper.m
#import "Mapper.h"
@implementation Mapper
-(id) initWithSourceFrame:(CGRect)sourceViewFrame mappedFrame:(CGRect)mappedViewFrame {
NSLog(@"height: %f, width: %f", mappedViewFrame.size.height, mappedViewFrame.size.width);
self = [super init];
NSLog(@"height: %f, width: %f", mappedViewFrame.size.height, mappedViewFrame.size.width);
if (self) {
NSLog(@"height: %f, width: %f", mappedViewFrame.size.height, mappedViewFrame.size.width);
}
return self;
}
@end
Я не изменял Stack1AppDelegate.h.
Stack1AppDelegate.m
#import "Stack1AppDelegate.h"
#import "Mapper.h"
@implementation Stack1AppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
Mapper *mapper = [[Mapper alloc] initWithSourceFrame:CGRectMake(0, 0, 100, 100) mappedFrame:CGRectMake(0,0, 200,200)];
}
@end
Весь мой код выделил экземпляр Mapper, как ваш, и также использовал NSLogраспечатать ширину и высоту до [super init], после [super init], а также внутри блока if (self).
Вот журнал:
2011-01-23 16:09:07.167 Stack1[935:a0f] height: 200.000000, width: 200.000000
2011-01-23 16:09:07.170 Stack1[935:a0f] height: 200.000000, width: 200.000000
2011-01-23 16:09:07.170 Stack1[935:a0f] height: 200.000000, width: 200.000000
У меня естьтакже загрузил весь проект здесь:
http://ak.net84.net/files/temp/Stack1.zip