我有一些iOS应用程序的代码,似乎一个快速简单的任务每次都需要我的iPhone 4S花费一秒钟或更长时间。
情景是这样的...我有一个2个按钮的ActionSheet弹出窗口,如果用户点击其中任意一个按钮,应用程序似乎会停顿约一秒钟。以下是代码:
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
UIAlertView* newTimerAlertView = [[[UIAlertView alloc] initWithTitle:@"Create New Timer"
message:@"Enter a name for your new indicator"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Create", nil] autorelease];
newTimerAlertView.tag = kNewTimer;
newTimerAlertView.alertViewStyle = UIAlertViewStylePlainTextInput;
[newTimerAlertView show];
}
else if (buttonIndex == 1)
{
NSLog(@"ActionSheet button 2 tapped");
UIAlertView* newTallyAlertView = [[[UIAlertView alloc] initWithTitle:@"Create New Tally"
message:@"Enter a name for your new indicator"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Create", nil] autorelease];
newTallyAlertView.tag = kNewTally;
newTallyAlertView.alertViewStyle = UIAlertViewStylePlainTextInput;
[newTallyAlertView show];
NSLog(@"end");
}
}
专注于第二个按钮,为了简单起见(尽管第一个按钮的行为方式相同),日志如下所示:
2012-01-25 20:35:46.330 ...[177:707] ActionSheet button 2 tapped
2012-01-25 20:35:47.194 ...[177:707] end
2012-01-25 20:35:56.154 ...[177:707] ActionSheet button 2 tapped
2012-01-25 20:35:56.180 ...[177:707] end
请注意,第一次尝试时,代码片段执行完成需要超过一秒钟的时间,但第二次(以及之后的所有次数)代码只需要30毫秒左右。
代码有问题吗?还是我需要通过进度视图弥补延迟?
谢谢!
编辑:这只发生在从Xcode运行应用程序的设备上...也许与调试器有关?
NSTimeInterval
实例变量,并稍后将它们记录下来。类似这样:startSecond = [NSDate timeIntervalSinceReferenceDate];
NSLog 已知会导致性能问题。 - NJones