2011-02-12 54 views
0

變化。當我畫這個對象是一個時代的作品,但在那之後我的路徑對象(女巫NSBezierPath)在NSCFTimer對象的變化。我NSBezierPath在NSCFTimer

- (void)draw { 
    NSRect drawingbounds = [self drawingbounds]; 
    if(image == nil) { 
     image = [[NSImage alloc] initWithSize:drawingbounds.size]; 

     [image lockFocus]; 
     NSAffineTransform *transform = [NSAffineTransform transform]; 
     [transform translateXBy:-drawingbounds.origin.x yBy:-drawingbounds.origin.y]; 
     [transform concat]; 
     [[NSColor redColor] set]; 
     [path stroke]; 

     [image unlockFocus]; 
     [image retain]; 
    } 

    [image drawAtPoint:NSMakePoint(10.0, 10.0) 
      fromRect: NSMakeRect(0.0, 0.0, 100.0, 100.0) 
     operation: NSCompositeSourceOver 
      fraction: 1.0]; 

} 

- (NSRect)drawingbounds { 
    NSLog([path description]); 
    return NSMakeRect(10.0, 10.0, 100.0, 100.0); 
    return NSInsetRect([path bounds], -[path lineWidth] , -[path lineWidth]); 
} 
+0

糟糕的代碼元素沒有工作,對不起 – kaibakker 2011-02-12 11:27:39

回答

1

請在其中創建path變量的代碼發佈。

這聽起來像路徑對象被釋放,這就是爲什麼你看到在它的內存位置另一個對象(NSCFTimer)。如果您沒有正確保留path對象,就會發生這種情況。

+0

您還可以使用樂器的殭屍模板來查看路徑發送`釋放`信息的所有地方。 – 2011-02-12 20:41:38