gpt4 book ai didi

iphone - UIAlertView 开始显示,屏幕变暗,但直到为时已晚才弹出!

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:58 25 4
gpt4 key购买 nike

我有一个按钮,按下该按钮会调用从一系列 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com