草庐IT

locks_block

全部标签

ios - 带有 UI 回调的循环 block

我有一个耗时的过程,并且有一个进度指示器向用户显示事情已经进行了多长时间。因为我必须在主线程上执行消费操作,所以我无法选择在更新之间简单地在主队列上分派(dispatch)更新。我必须暂时切换到后台线程,以便在切换回并继续之前让UI更新。我有的就是这个,但是感觉很不正统。有没有更好的方法来执行我所缺少的“带有UI回调的循环block”?我也不完全确定这是否最终会释放block,但那是另一回事了。__blockNSUIntegeri=0;__blockdispatch_block_tobtainBlock;obtainBlock=[^{[selfobtainAssetAtIndex:i]

objective-c - 是否写入文件 :atomically: blocks asynchronous reading?

在使用我的应用程序时,有几次我在后台处理一些大数据。(在用户需要时准备好。某种索引。)当这个后台进程完成时,它需要将数据保存在缓存文件中,但由于这真的很大,所以需要几秒钟。但同时用户可能会打开一些显示从磁盘加载的图像和文本的对话框。如果在保存后台进程数据的同时发生这种情况,则用户界面需要等待保存过程完成。(这是不希望的,因为用户必须等待3-4秒,直到从磁盘加载图像和文本!)所以我正在寻找一种方法来限制写入磁盘。我想将数据分成block,并在保存不同block之间插入一个短暂的延迟。在此延迟中,用户界面将能够加载所需的文本和图像,因此用户不会意识到延迟。目前我正在使用[[arraycom

ios - Objective-C 中的一个奇怪的 block 问题

我有一个AuthService类,它有一个方法来执行异步连接以登录。此类实现了NSURLConnectionDataDelegate协议(protocol),因此当服务器响应时,它会调用先前由ViewController设置的完成处理程序来更新UI。这是完成处理程序的定义@propertyvoid(^completionHandler)(LoginResult*result);这是类接收服务器响应的时候-(void)connection:(NSURLConnection*)connectiondidReceiveData:(NSData*)data{NSString*response=

ios - 哪个更适合做异步?委托(delegate)还是 block ?

我有一个模型Model,它通过JSONAPI加载一些东西,然后我以某种方式在UI中显示它。假设一次只有一个current实例(根据时间从服务器获取),所以我有一个看起来像这样的方法调用[Modelcurrent]。问题是我需要在加载数据时做一些事情,这导致我有两种可能的解决方案:Delegation-类似于[ModelcurrentWithDelegate:self],我将在self上实现一个具有回调的协议(protocol)block-[ModelcurrentWithSuccess:^(idresponse){...}error:^(NSError*error){...}]因为我是

ios - 我真的必须创建两个版本的变量才能使用 objective-c block 吗?

有很多关于block和保留周期的问题......他们让我整理了以下代码:-(void)promptNewName{DTAlertView*prompt=[[DTAlertViewalloc]initWithTitle:@"Name"message:@"foobar"];prompt.alertViewStyle=UIAlertViewStylePlainTextInput;[promptaddCancelButtonWithTitle:NSLocalizedString(@"Cancel",nil)block:^{}];__weakDTAlertView*weakPrompt=prom

ios - 如何使方法具有可执行 block 作为参数,该方法应在 objective-c 中的方法完成时执行

我想定义将包含block作为参数的方法,但block应该在方法的completion上运行。例如:[pickerdismissViewControllerAnimated:YEScompletion:^{imageThumb=pickedImage;imageViewThumb.image=imageThumb;}];请看看我做了什么。我在.h文件中声明了这个方法--(void)resizeImageForSmoothness:(int)imageSmoothnesscompletion:(void(^)(void))completion;我在.m文件中实现了--(void)resiz

iOS 今日小部件扩展 : detect if opened in lock screen

有没有办法查看用户是否从锁定屏幕激活了通知中心?如果iPhone仍处于锁定状态,我想在小部件中隐藏一些私有(private)信息。 最佳答案 这有点hacky,但我是这样做的:1)当您的应用首次启动时,在您的共享容器中创建一个虚拟文件并将其NSFileProtectionKey属性设置为NSFileProtectionComplete。我们称它为ProtectionMonitor.dummy2)当您的小部件启动时,尝试从文件中获取数据。如果失败,设备将被锁定。3)监控UIApplicationProtectedDataDidBeco

ios - 停止特定的 UIView 动画 block - iOS

我有一个iOS应用程序,它运行几个不同的UIViewAnimationblock来为屏幕上的几个不同对象设置动画。这一切都有效,但是我怎样才能停止其中一个动画block而不停止其余的呢?我尝试过使用以下方法:[button.layerremoveAllAnimations];但它什么也没做,动画只是继续。然后我尝试使用一个简单的BOOL值,并在BOOL设置为“NO”后让动画从方法中返回",但这也不起作用。这是我要停止的动画:-(void)undo_animation:(int)num{//Fadeout/inthenumberbuttonlabel//animationwhichlet

ios - 带有延迟 block UI 交互的 UIView 动画?

UIViewanimateWithDuration的文档说在动画期间所有用户交互都被阻止。但我想知道它是否也会在预动画延迟期间阻塞。documentation说"Duringananimation,userinteractionsaretemporarilydisabledfortheviewsbeinganimated.(PriortoiOS5,userinteractionsaredisabledfortheentireapplication.)Ifyouwantuserstobeabletointeractwiththeviews,includetheUIViewAnimatio

objective-c - 强制 CLGeocoder block 代码同步运行

我使用CLGeocoder对地址列表进行地理编码,以便可以在UITableView中向用户显示某些类型的信息。但是,所有CLGeocoder地理编码和反向地理编码方法都将代码块作为参数,只要地理编码请求完成,该代码块就会与程序的其余部分异步运行:-(void)geocodeAddressString:(NSString*)addressStringcompletionHandler:(CLGeocodeCompletionHandler)completionHandler有没有办法强制此代码同步运行(即强制程序等待地理编码请求完成并等待它被处理程序处理后再继续)。