Я пытаюсь сделать свое первое приложение Quartz 2D для MAC.У меня просто есть мой делегат приложения и класс myView, как показано ниже -
mydrawAppDelegate.h -
#import <Cocoa/Cocoa.h>
@class myView;
@interface mydrawAppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
myView* view;
}
@property (assign) IBOutlet NSWindow *window;
@end
mydrawAppDelegate.m -
#import "mydrawAppDelegate.h"
#import "myView.h"
@implementation mydrawAppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
view = [[myView alloc] initWithFrame:CGRectMake(0.0, 0.0, 300.0, 480.0) ];
[[self.window contentView] addSubview:view];
}
@end
myView.h -
#import <Cocoa/Cocoa.h>
#import <Quartz/Quartz.h>
#import <AppKit/AppKit.h>
@interface myView : NSView {
}
@end
myView.m -
#import "myView.h"
@implementation myView
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
NSLog(@"initwithframeeeeeee");
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect {
// Drawing code here.
NSLog(@"drawrect called");
CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [NSColor redColor]);
CGContextMoveToPoint(context, 100.0f, 100.0f);
CGContextAddLineToPoint(context, 300.0f, 300.0f);
CGContextStrokePath(context);
}
@end
Он строит, но выдает "EXC_BAD_ACCESS" во время работы.И предупреждение времени компиляции: «Передача аргумента 2 'CGContextSetStrokeColorWithColor' из несовместимого типа указателя"
Также я не использую ни один файл пера.Используем ли мы файл пера, когда рисуем кварцем или нет?Пожалуйста, помогите.Спасибо ...