gpt4 book ai didi

cocoa - mouseDown 方法中出现异常

转载 作者:行者123 更新时间:2023-12-03 17:36:49 30 4
gpt4 key购买 nike

我正在使用 NSView 进行拖放操作。

在要拖动的对象(NSView 的子类)中,我实现了 mouseDown: 方法,如下所示:

@try {
NSPoint location;
NSSize size ;
NSPasteboard *pb = [NSPasteboard pasteboardWithName:@"CameraIconContainer"];

location.x = ([self bounds].size.width - size.width)/2 - 21.0;
location.y = ([self bounds].size.height - size.height)/2 - 7.0;

NSLog(@"mouseDown: location- (%f, %f)",location.x,location.y);


NSDictionary *iconViewDict = [[NSDictionary alloc] initWithObjectsAndKeys:[cameraNo stringValue],@"cameraNo",nil];
NSLog(@"iconViewDict - %@",iconViewDict);

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:iconViewDict];


[pb declareTypes:[NSArray arrayWithObject:IconDragDataType] owner:self];
[pb setData:data forType:IconDragDataType];
[self dragImage:[NSImage imageNamed:@"camera_icon.png"] at:location offset:NSZeroSize event:e pasteboard:pb source:self slideBack:YES];
}
@catch (NSException * e) {
NSLog(@"CameraIconView (-mouseDown:), error - %@",e);
}

大多数时候它工作正常,但问题是 - 有时它会引发这个问题

exception:Invalid parameter not satisfying: theWriteStream != NULL

在mouseDown:方法中,拖动的图像会持续出现在屏幕上,即使选择其他窗口,该图像也不会消失。

谁能告诉我为什么会发生这种情况以及如何解决它?

谢谢

米拉杰

最佳答案

exception:Invalid parameter not satisfying: theWriteStream != NULL

这种异常来自断言。有些东西将尝试写入流,并断言它有一个要写入的流。当断言失败时,意味着条件不成立;在这种情况下,这意味着它没有要写入的流。

我在您提供的示例中没有看到任何与流相关的代码,因此它要么位于您应用程序的其他位置,要么位于您正在使用的框架内的某个位置。您应该在 Xcode 中打开“Stop on Objective-C exceptions”,然后在调试器下运行您的应用程序,直到发生异常,然后查看调试器中的堆栈跟踪以准确了解引发异常的原因。

关于cocoa - mouseDown 方法中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3287980/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com