在Cocoa中等待特定时间的方式是否比我在下面提出的更直接?
- (void) buttonPressed {
[self makeSomeChanges];
// give the user some visual feedback and wait a bit so he can see it
[self displayThoseChangesToTheUser];
[self performSelector:@selector(buttonPressedPart2:) withObject:nil afterDelay:0.35];
}
- (void) buttonPressedPart2: (id)unused {
[self automaticallyReturnToPreviousView];
}
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,这段代码没有任何功能问题 - 我唯一的牛肉是风格的.在我的情况下,流程很简单,它可以工作,但尝试封装它或抛出一些条件,事情可能变得丑陋.有点唠叨我,我无法找到一种方法等待,然后回到像这个(虚构)示例的代码中的相同点:
- (void) buttonPressed {
[self doStuff];
[UIMagicUnicorn waitForDuration:0.35];
[self doStuffAfterWaiting];
}
Run Code Online (Sandbox Code Playgroud) 在iOS环境中,是否可以使当前线程休眠几秒钟,然后执行我的代码?NSTimer,GDC或任何技术对我都没问题.
我已经看过"测试具有有限网络访问权限的iPhone应用程序"(链接)问题,虽然这是一个很好的提示,但在通过EDGE使用时测试一段代码的实际性能方面并不是很有帮助.根据我的经验,网络将随机进入连接状态.我想用某种方法模拟这个.我正在考虑sqlite如何自动测试malloc.
这些已检测的malloc可以设置为仅失败一次然后再次开始工作,或者在第一次失败后继续失败.OOM测试在循环中完成.在循环的第一次迭代中,检测到的malloc在第一次分配时被操作失败.然后执行一些SQLite操作并进行检查以确保SQLite正确处理OOM错误.然后将仪表化的malloc上的故障时间计数器增加1并重复测试.循环继续,直到整个操作运行完成,而不会遇到模拟的OOM故障.像这样的测试运行两次,一次将检测的malloc设置为仅失败一次,并且再次使用检测的malloc设置为在第一次失败后连续失败"
我已经做了一些谷歌搜索,但我想知道是否有一个很好的工具来做到这一点.我想用我的开发机器模拟服务器和通过WiFi连接的iPhone.