小编Kri*_*son的帖子

为什么必须使用CALayer的presentationLayer进行命中测试?

我正在研究Cocoa Touch应用程序,并试图通过确定触摸视图层的哪个子层来处理触摸.我的控制器代码看起来像这样:

CALayer *hitLayer = [self.view.layer hitTest:point];
Run Code Online (Sandbox Code Playgroud)

这不起作用.如果我点击子层的底部,而不是顶部,它会起作用.经过一个小时的拉毛和谷歌搜索后,我终于发现,如果使用表示层进行命中测试而不是图层本身,它会起作用:

CALayer *hitLayer = [self.view.layer.presentationLayer hitTest:point];
Run Code Online (Sandbox Code Playgroud)

所以,我已经解决了我的问题,但我的问题是:为什么?

我已经阅读了核心动画指南,我知道表示树和渲染树可以与对象模型树不同.但我不明白为什么表示树(显然)会有不同的命中测试行为.表示树和对象模型不会具有相同的帧,边界等吗?

cocoa cocoa-touch core-animation calayer

6
推荐指数
1
解决办法
5203
查看次数

正在寻找TiddlyWiki插件的文档

我想写一些关于TiddlyWiki插件的想法.但是,我一直无法找到"TiddlyWiki插件API"的任何参考信息(似乎没有正式定义).

这样的文档是否存在,或者我只需要查看TiddlyWiki源代码和一些示例插件?

javascript tiddlywiki

6
推荐指数
1
解决办法
1655
查看次数

如何追踪"libc ++ abi.dylib:称为纯虚函数!" 在Xcode中

我有一个多线程OS X应用程序,它使用C++,Objective-C和Swift的混合.

当我的应用程序关闭时,我在Xcode调试器窗口中看到了这一点:

libc++abi.dylib: Pure virtual function called!
Run Code Online (Sandbox Code Playgroud)

我知道这个错误通常是由在C++类构造函数或析构函数中调用虚函数引起的.

有没有一种简单的方法可以找到它的位置?通过"Easy",我的意思是"不分析每个构造函数的每一行的调用树和每个具有虚函数的类的析构函数".

我没有看到堆栈跟踪.打印此消息时,调试器不会暂停程序.从我的应用程序委托的applicationDidTerminate方法记录的消息在此消息之前.

我尝试在"所有异常"上设置断点但不幸的是,断点经常受到使用大量异常的代码的影响.还有其他符号我可以设置断点吗?

c++ macos xcode

6
推荐指数
1
解决办法
3793
查看次数

查找位置的城市和邮政编码

给定纬度和经度,找到城市名称和该位置的美国邮政编码的最简单方法是什么.

(这类似于/sf/ask/1650071/,但我想以相反的方向转换.)


相关问题:获取纬度/长对的街道地址

gis mapping maps location geocoding

5
推荐指数
1
解决办法
6250
查看次数

跟踪Bug数据库中的重构

假设您在某个地方工作,其中源代码的每个更改都必须与错误报告或功能请求相关联,并且无法对该策略进行重组.在这样的环境中,处理代码重构的最佳方法是什么(即改进代码但不修复错误或添加功能的更改)?

  • 编写错误报告并将重构与之关联起来.
  • 编写功能请求并将重构与其关联.
  • 在处理与错误报告/功能请求相关联的代码时,在重构中潜行.
  • 只是不要做任何重构.
  • 其他

请注意,经理和客户都可以看到所有错误报告和功能描述.

refactoring bug-tracking

5
推荐指数
1
解决办法
223
查看次数

如何在iPhone应用程序的隐藏状态栏区域中获取触摸事件?

我有一个隐藏状态栏的iPhone应用程序.但是,当我点击状态栏区域时,我的主视图没有任何触摸事件.有什么我可以做的来解决这个问题吗?

以下是我的应用程序设置的一些细节(如果它很重要):

  • 这是一个基于OpenGL的应用程序.
  • 该应用程序以横向模式启动.但是,当我点击纵向模式区域"顶部"附近的区域时,触摸事件丢失.(换句话说,当我将设备保持在横向时,我不会在左边缘上触摸事件.)
  • 我的info.plist将UIStatusBarHidden设置为true,并且在我的应用程序委托的applicationDidFinishLaunching方法中,我有"application.statusBarHidden = YES;"
  • 主视图的exclusiveTouch设置为YES.
  • 视图的touchesBegan:当我点击屏幕上的任何其他位置时调用withEvent方法.
  • 我的观点在状态栏区域内得到了很好的体现.

(请不要抱怨NDA.谢谢.)


更新: 事实证明,此问题仅在iPhone模拟器上显现.当应用程序在实际iPhone上运行时,会在任何地方检测到触摸.

我仍然有兴趣知道是否有办法让它在模拟器上工作,但这没什么大不了的.

iphone

5
推荐指数
1
解决办法
3076
查看次数

用于将十六进制转储转换为人类可读形式的任何通用实用程序或库?

我通过与各种设备的串行通信工作很多,因此我经常需要分析日志文件中的十六进制转储.目前,我通过查看转储,查看协议规范以及写下结果来手动执行此操作.但是,这很乏味且容易出错,尤其是whem消息包含数百个字节,并包含big-endian和little-endian数据,ASCII,Unicode,压缩,CRC等的混合....

我编写了一些Python脚本来帮助处理更常见的情况.但是有很多协议要处理,除非我知道我要分析很多转储,否则花时间编写自定义脚本是没有意义的.

我想要的是某种可以自动执行此活动的实用程序.所以,例如,如果我有这样的文本十六进制转储:

7e ff 00 7b  00 13 86 04
00 41 42 43  44 56 ef 7e
Run Code Online (Sandbox Code Playgroud)

以及对消息格式的某种描述,如下所示:

# Field         Size        Byte Order  Output Format
Flag            1                       hex
Address         1                       hex
Control         1                       hex
DataType        1                       decimal
LineIndex       1                       decimal
PollAddress     2           msb         hex
DataSize        2           lsb         decimal
Data            (DataSize)              ascii
CRC             2           lsb         hex
Flag            1                       hex
Run Code Online (Sandbox Code Playgroud)

我得到这样的输出:

Flag            0x7e
Address         0xff
Control         0x00
DataType        123
LineIndex       0
PollAddress     0x1386
DataSize        4
Data            "ABCD"
CRC             0xef56
Flag …
Run Code Online (Sandbox Code Playgroud)

hex hexdump protocols binaryfiles

5
推荐指数
1
解决办法
2332
查看次数

从PC上阅读吉他英雄或摇滚乐队控制器

与Guitar Hero和Rock Band一起使用的"乐器"具有USB连接.是否有关于如何阅读它们生成的消息的文档或逆向工程信息?

usb

5
推荐指数
1
解决办法
1574
查看次数

尝试运行单元测试时出现"找不到此可执行文件的有效配置文件"错误

我有一个带有单元测试目标的Xcode工作区.单元测试在模拟器中运行良好,并且在我的一个设备上运行正常(运行iOS 6的第四代iPod touch).然而,在其他两个设备(iPad Air和运行iOS 7的第五代iPod touch)上,当我尝试运行单元测试时,我得到一个警报说

A valid provisioning profile for this executable was not found
Run Code Online (Sandbox Code Playgroud)

我只在运行单元测试时得到这个.如果我尝试在这些设备上运行应用程序,它会安装并运行正常.

我已经验证了应用程序的代码签名构建设置中设置的(开发人员)配置文件包含这些设备,并且它与我的开发人员代码签名标识和应用程序ID相匹配.我还尝试重新创建,重新下载和重新安装配置文件.

我应该在哪里看?为什么Test的配置文件在Run有效时无效?

xcode unit-testing ios-provisioning

5
推荐指数
1
解决办法
2万
查看次数

什么是"!!" 象征意味着在Ruby?

def test
!!session[:test]
end
Run Code Online (Sandbox Code Playgroud)

! - 这是做什么的?我们可以删除它,仍然认为它将工作相同吗?

ruby

4
推荐指数
1
解决办法
690
查看次数