enumerateLinesSwift String类型的函数声明如下:
enumerateLines(body: (line: String, inout stop: Bool) -> ())
Run Code Online (Sandbox Code Playgroud)
据我了解,这个声明表示:"enumerateLines是一个函数采取关闭,body,这是交给两个变量,line和stop,并返回void."
根据Swift编程语言书,我相信我应该能够以enumerateLines一个简洁的简洁方式调用尾随闭包,如下所示:
var someString = "Hello"
someString.enumerateLines()
{
// Do something with the line here
}
Run Code Online (Sandbox Code Playgroud)
..但是会导致编译错误:
Tuple types '(line: String, inout stop: Bool)' and '()' have a different number of elements (2 vs. 0)
那么我尝试显式地放入参数,并取消尾随闭包:
addressString.enumerateLines((line: String, stop: Bool)
{
// Do something with the line here
})
Run Code Online (Sandbox Code Playgroud)
...但是会导致错误:
'(() -> () -> $T2) -> $T3' is …
我正在开发一个 Android 应用程序,它从一些自定义硬件传输串行数据。我正在使用 mik3y 的usb-serial-for-android库以 OTG 模式通过 USB 获取串行数据,经过一些调整后工作正常。
\n\n然而,对于通过 USB 接口的每笔交易,UsbRequestJNI都会记录一条init和close消息。这使得 LogCat 每秒被数千条日志消息淹没(注意时间戳):
02-17 09:30:21.590 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.590 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.594 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.594 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.598 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.598 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.602 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.602 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.606 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.606 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.610 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.610 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.614 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.614 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 …Run Code Online (Sandbox Code Playgroud) 我很害怕问这个问题,因为它没有包含细节,也没有任何代码示例,但那是因为我在过去几周我曾在过的三个完全不同的应用程序中遇到过它,并且我认为具体的代码可能只会使问题浮现.
搜索网络,没有发现我遇到的现象,所以我只是把它扔出去,希望别人看到同样的事情:
"问题"是我为一个人建造的所有iOS OpenGL应用程序,当我在仪器中对它们进行分析时比在独立运行时运行得更快.如图所示,帧速率大约快两倍(从例如30fps跳到60fps).这是通过代码定时循环和观看应用程序运行来测量的.乐器似乎在做一些神奇的事情.
这是在设备上,而不是iOS模拟器.
如果我通过仪器分析我的OpenGL应用程序并上传到设备(特别是运行iOS 5.1的iPad 3),帧速率就会大大提高,比独立运行速度快得多.似乎没有跳帧或像这样的shennanigans.它只是以大约两倍的速度进行相同的计算.
虽然我没有包含任何代码示例,但只是假设我正在做正常的事情.OpenGL ES 2.0,带有VBO和VAO.使用调度队列/块多线程处理一些计算密集的代码区域.没有异国情调或疯狂.
我想知道是否有人经历过任何模糊相似的事情.如果没有,我会回到我的洞穴,继续用叉子刺伤自己的腿.