我移植了一些objective/CoreGraphics代码,它需要多个监视器的屏幕截图,但它不起作用。jsctypes的人帮不上忙,因为这部分只是我在回答问题
objc/cg代码来自这里:https://stackoverflow.com/a/28247749/1828637
我的jsctype/struct/声明在这里:mac.jsm
jsctypes端口在这里:https://github.com/Noitidart/NativeShot/blob/mac-troubleshooting/modules/workers/MainWorker.js#L443-656
最后一行是造成崩溃的第643行:
var rez_writeToFile = ostypes.API('objc_msgSend')(data, ostypes.HELPER.sel('writeTofile:atomically:'), myNSStrings.get(OS.Path.join(OS.Constants.Path.desktopDir, 'full_ss.png')), ostypes.CONST.YES);这与
[data writeToFile:@"/tmp/screenshot.png" atomically:YES];但我更改了桌面/.png的路径
我写信给专家,用文本差分软件对齐线条,以确保我做了所有的事情。
我想我没有错过任何东西,我不知道它为什么会在最后一条线上崩溃
是否有任何ObjC/CG人看到错误的类型定义或我遗漏的东西(例如,ObjC代码使用复合状态,我不确定我在端口中是否正确地理解/翻译了它们)。
发布于 2015-05-11 17:00:46
哇,所以在挣扎了几个小时之后,我立刻意识到这一点。
选择器中的大写错误!我有writeTofile:atomically而不是writeToFile:atomically!
如果有人想测试这一点,这是一个简单的firefox addon测试用例。
https://stackoverflow.com/questions/30173185
复制相似问题