- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个按钮,按下该按钮会调用从一系列 URL 加载信息(大约 5 秒加载时间)。在实际调用这些电话之前,我想添加一个“正在加载”警报。当我使用 UIAlertView 时,屏幕会变暗,就像它即将弹出一样,但直到加载数据时它才会变暗 - 太晚了!我不知道发生了什么,就像我为加载数据所做的调用立即优先于显示新 View ,即使它们是在添加新 View (或显示警报)的调用之后立即进行的.这是代码的摘要版本:
-(void) refresh{
UIAlertView *av = ...
[av show]; //this should pop up before dat begins to load
[myDataSource loadData]; //this contains a series of [NSData initWithURL] calls
[self.tableView reloadData];
//here I would hide the AlertView, but if I do I see it for just s split second
//when the tableView has already reloaded
}
提前感谢您的任何见解!
***编辑对于使用 performSelectorInBackground 的任何人,请注意创建有效的线程程序所增加的复杂性。例如,由于新线程没有自动释放池,可能会出现泄漏——您必须添加一个,等等。
最佳答案
当您尝试从 Internet 检索数据时(我猜您正在使用类似 [NSString stringWithContentsOfURL: ...] 的东西),主线程正在等待这些数据,因此应用程序无法重绘界面。您可以尝试使用:
[mySourceData performSelectorInBackground:@selector(loadData) withObject:nil];
如果在对 NSManagedObjectContext 进行任何操作之前使用 coredata 锁定 NSManagedObjectContext 并在完成后将其解锁,请小心。
关于iphone - UIAlertView 开始显示,屏幕变暗,但直到为时已晚才弹出!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5185223/
尝试从 parsCit 运行这个小 perl 程序: parsCit-client.pl e1.txt Too late for -CSD option at [filename] line 1 e1
我通常这样做: git init git add . git commit . 然后我意识到它即将添加我想要排除/忽略的 nbproject 目录。有时,我什至检查这个目录。如果我在运行 git ad
我正在处理我的代码,它的工作是,但 Action (插入 css)是 Action 的后期。 jQuery(document).ready(function() { jQuery("#cal
我是一名优秀的程序员,十分优秀!