I am working with NSBezierPaths. Many of its methods require an NSPointArray as one of the parameters. The documentation describes it as “A C-style array containing up to three NSPoint data types.” The documentation is sparse. Evidently I have been unable to create an NSPointArray because all my attempts to use one cause both Script Debugger and Script Editor to crash. For example, the following code results in a crash due to the setAssociatedPoints: method.
[AppleScript]set theImage to NSImage’s alloc’s initWithSize:{500, 500}
theImage’s lockFocus()
set thePath to NSBezierPath’s bezierPath()
thePath’s moveToPoint:{0, 0}
thePath’s lineToPoint:{50, 50}
set thePoint to current application’s NSMakePoint(50, 125)
set theArray to current application’s NSArray’s alloc’s initWithArray:{thePoint}
thePath’s setAssociatedPoints:theArray atIndex:1
thePath’s stroke()
theImage’s unlockFocus()
[/AppleScript]
I have tried a number of variations to create theArray, including using a mutable array. I have also tried using NSValue to place the point in the array, but the code still caused Script Debugger to crash.
set theImage to NSImage's alloc's initWithSize:{500, 500}
theImage's lockFocus()
set thePath to NSBezierPath's bezierPath()
thePath's moveToPoint:{0, 0}
thePath's lineToPoint:{50, 50}
set thePoint to current application's NSMakePoint(50, 125)
set theArray to current application's NSMutableArray's alloc's init()
theArray's addObject:(current application's NSValue's valueWithPoint:thePoint)
thePath's setAssociatedPoints:theArray atIndex:1
thePath's stroke()
theImage's unlockFocus()[/AppleScript]
I would appreciate any assistance.