我有一个EventMachine服务器将TCP数据发送到Mac客户端(通过GCDAsyncSocket).它总是完美无缺地工作一段时间,但服务器不可避免地突然停止逐个连接地发送数据.仍然保持连接,并且服务器仍然从客户端接收数据,但它不会采用其他方式.
当发生这种情况时,我通过连接#get_outbound_data_size发现连接发送缓冲区无限填充(通过#send_data)而不是发送到客户端.
是否存在可能发生这种情况的具体(并且有希望解决)原因?反应堆保持嗡嗡声,与服务器的其他活动连接继续正常工作(尽管它们有时也会陷入缓冲区地狱).
我想弄清楚Applescript中给定菜单项的键盘快捷键(例如,shift + cmd + S)."探针菜单栏"脚本帮助我访问菜单项甚至检查它们的属性等,但我一直无法发现哪些将打印出键盘快捷键.
探针脚本是这样的:
tell process "Finder"
get every menu bar
tell menu bar 1
get every menu bar item
get every menu of every menu bar item
get every menu item of every menu of every menu bar item
Run Code Online (Sandbox Code Playgroud)
因此,我只需要一种方法在此循环期间从所述"菜单项"打印/收集快捷方式.
谢谢你的帮助!
我们的Mac cocos2d应用程序(http://deepworldgame.com)已经随机抛出"TSMProcessRawKeyCode失败"异常一段时间了,我想知道是否有人遇到过这个错误或知道如何防止它.
它总是通过ccKeysDown或ccKeysUp中的[NSEvent charactersIgnoringModifiers]调用发生(它也适用于没有修饰符的[NSEvent characters]).我不认为它与特定键有关.有时它只发生一次,然后应用程序继续运行(如果异常被捕获),但有时它基本上无限期地锁定键盘输入并继续导致所有未来按键异常(同样,当捕获这些异常时).
不幸的是,我在这个问题上找不到关于这个问题的互联网.我找到的一个地方是Adium源代码(https://bitbucket.org/adium/adium/src/6d1f9b903525/Source/AIExceptionController.m),它通过注释捕获此异常:
//Ignore various known harmless or unavoidable exceptions (From the system or system hacks)
...
// [TSMProcessRawKeyCode] May be raised by -[NSEvent charactersIgnoringModifiers]
Run Code Online (Sandbox Code Playgroud)
抛出一次确实无害,但是当它发生连续发射时,这是一个真正的问题 - 特别是当你处于全屏模式并且无法使用cmd-F逃生时!
所以,如果有人有任何想法或经验,我将非常感激.这几乎就是我们应用中剩下的超级细菌,我很想把它压成灰尘.
谢谢!
这是典型的堆栈跟踪(MacManager.m是我们的对象,它实现了cocos2d键盘委托协议):
Crashed Thread: 7 CVDisplayLink
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Application Specific Information:
objc[28871]: garbage collection is OFF
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'TSMProcessRawKeyCode failed (-192)'
*** Call stack at first throw:
(
0 CoreFoundation 0x95b27d87 __raiseError + 231
1 …Run Code Online (Sandbox Code Playgroud)