-
0 votesanswersviews
处理程序块执行时,UIAlertController为nil
Here's the problem up front: 我有一个有文本字段的UIAlertController . 我想在用户触摸警报中的"Confirm"按钮时将该文本字段的内容保存为NSString . 但是,当执行确认操作块时,警报为零(可能已经解除并在该点解除分配),因此它的文本字段也是如此,这意味着我无法保存文本字段的文本 . 我正在使用一系列UIAlertCont... -
307 votesanswersviews
我可以使用Objective-C块作为属性吗?
是否可以使用标准属性语法将块作为属性? ARC 有什么变化吗? -
362 votesanswersviews
将块内的变量分配给块外的变量
我收到了一个错误 变量不可赋值(缺少__block类型说明符) 在线 aPerson = participant; . 如何确保块可以访问 aPerson 变量并且可以返回 aPerson 变量? Person *aPerson = nil; [participants enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *s... -
86 votesanswersviews
块而不是performSelector:withObject:afterDelay:[duplicate]
这个问题在这里已有答案: How do you trigger a block after a delay, like -performSelector:withObject:afterDelay:? 17个答案 我经常想在将来几微秒内执行一些代码 . 现在,我解决这个问题: - (void)someMethod { // some code } 还有这个: [self perfor... -
0 votesanswersviews
我什么时候发布这个块?
我正在查看此主题How do you trigger a block after a delay, like -performSelector:withObject:afterDelay:?中的一些代码 . 我想知道,如果块异步执行某些操作,块应何时释放? 假设我的代码看起来像这样: - (void)testMethod:(id)parameter { dispatch_block_t b... -
20 votesanswersviews
您是否注意到dispatch_after在iOS设备上运行速度慢〜10%?
最近我一直在使用dispatch_after而不是performSelector:withObject:afterDelay,当我想在延迟后触发一些代码 . 代码更清晰,可以访问封闭范围,我可以将代码放入内联而不是编写丢弃方法等等 . 我的代码可能如下所示: dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delay * NSEC_PER_SEC... -
274 votesanswersviews
块声明语法列表
目标C中的块语法(实际上是C,我推测)是众所周知的不协调 . 将块作为参数传递看起来与将块声明为ivars不同,后者看起来与 typedef 块不同 . 是否有一个完整的块声明语法列表,我可以随时保存以供快速参考? -
1 votesanswersviews
在块中强烈捕获属性,将应用程序非弧转换为弧[重复]
这个问题在这里已有答案: capturing self strongly in this block is likely to lead to a retain cycle 6个答案 我已将变量声明为 UIViewExtention 的子类 . 将项目非弧转换为弧 @interface SectionIconView : UIViewExtention @property (nonatomi... -
6 votesanswersviews
Linux上的编译器是否支持Objective-C块?
如何在linux上编译以下代码?使用Ubuntu 10.10(Maverick Meerkat) . #include <stdio.h> #include <stdlib.h> int main() { void (^block)() = ^{ printf("Hello world"); }; block(); } 我试过了:... -
704 votesanswersviews
如何在延迟后触发一个块,比如-performSelector:withObject:afterDelay:?
有没有办法在延迟后调用带有原始参数的块,比如使用 performSelector:withObject:afterDelay: 但是使用 int / double / float 这样的参数? -
410 votesanswersviews
“__block”关键字是什么意思?
Objective-C中的 __block 关键字究竟是什么意思?我知道它允许你修改块内的变量,但我想知道...... 它究竟是什么告诉编译器的? 它还有什么用吗? 如果就是这样的话那么为什么首先需要呢? 它在文档中的任何地方吗? (我找不到) . -
-1 votesanswersviews
特定ViewController上的UIButton TouchUpInside事件计数[关闭]
我在 UIViewController 中有一些10 UIButtons . 我想要实现的是:当用户点击任何4个按钮(它可以是4个不同的按钮或2个按钮,但总共按4次)时,它会触发一个特定的方法 . 该方法应在第4个 TouchUpInside 事件被调用后立即触发,无论是4个不同的按钮还是更少 . 它应该从几个按钮计算 TouchUpInside 并激活一个方法 . 任何帮助将受到高度赞赏 .... -
0 votesanswersviews
需要有关使用GCD将块添加到队列(objective-c)的建议
我有一个使用GCD的多线程功能的iPad应用程序 . 当我需要进行某种类型的后台处理时,我使用以下代码: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ -backgroundProcessing- }** 所以我的两个问题是: 1)由于我已将后台处理的 ALL 添加到同一队列,并且... -
61 votesanswersviews
如何在没有死锁的情况下同步调度主队列?
我需要同步在主队列上调度一个块 . 我不知道我目前是在主线程上运行还是不运行 . 天真的解决方案看起来像这样: dispatch_sync(dispatch_get_main_queue(), block); 但是如果我当前在主队列上运行的块中,则此调用会产生死锁 . (同步调度等待块完成,但块甚至没有开始运行,因为我们正在等待当前块完成 . ) 显而易见的下一步是检查当前队列: if (di... -
6 votesanswersviews
使用块,ARC和非ARC进行目标C内存管理
我一直在使用块一段时间,但我觉得在ARC和非ARC环境中都有一些我想念的内存管理 . 我觉得更深刻的理解会让我失去许多内存泄漏 . AFNetworking是我在特定应用程序中主要使用Blocks . 大多数情况下,在操作的完成处理程序中,我执行类似“[self.myArray addObject]”的操作 . 在ARC和非ARC启用的环境中,"self"将根据this art... -
0 votesanswersviews
是否有一种情况可以保留在ARC下的一个街区中的自我?
让我们说我的课看起来像 @interface MyClass { MyObject* _object; dispatch_queue_t _queue; } -(void)myBlocksUsingMethod; @end 忽略初始化队列的语义,现在我实现了 -(void)myBlockUsingMethod { dispatch_async(_queue, ^{ ... -
1 votesanswersviews
为什么我需要为某些完成块而不是其他块创建自我的线程安全版本?
我有一个UIPageViewController视图和设置视图控制器的方法我使用了一个自我的线程安全实例,如下所示: __block typeof(self) threadedSelf = self; [self.pageController setViewControllers:@[p] direction:UIPageViewCon... -
1 votesanswersviews
什么时候阻止在使用Self时会导致保留周期?
我的应用程序中有一些内存问题泄漏,我想知道块是否可能与它有关 . 我已经读过在一个块中使用Self会导致保留周期,但是我已经阅读了有关何时发生这种情况的冲突信息 . 根据我的理解,做这样的事情: dispatch_async(dispatch_get_main_queue(), ^{ self.text = @"test"; [self doSo... -
1 votesanswersviews
从异步回调中调用块
我尝试从异步回调中调用一个完成块 . 但有时我会遇到以下崩溃: Thread : Crashed: com.apple.main-thread 0 libswiftCore.dylib 0x100bc58e8 swift_unknownRelease + 8 1 Appname 0x100270370 thunk (Acc... -
11 votesanswersviews
理解复杂的块语法
我'm a beginner to Objective C and iOS development, but a 13-year .NET veteran. I'很难在心理上绘制以下声明,该声明来自Programming with Objective C指南: void (^(^a)(void (^) (void))) (void) = ... 它用作为什么应该使用 typedef 定义块的示例... -
0 votesanswersviews
如何将typedef'd块作为params传递给一个块,它本身就是一个方法的参数?
我有一个带一个参数的方法 . 这个参数是一个块 . 该块本身有两个参数,也就是块 . 它们具有返回void并接受引用对象的一个参数的特征 . 为方便起见,我们键入作为另一个块参数的块 . typedef void (^MyParamBlock)(id); 然后,采用块的方法看起来像 [self someMethod:^(MyParamBlock pBlock1, MyParamBlock pBl... -
4 votesanswersviews
有没有办法声明一个Objective-C块typedef,其参数包含typedef?
对于那里的客观C大师来说,这是一个有趣的... 有没有办法声明一个包含该typedef参数的objective-C块typedef? typedef BOOL (^SSCellAction) ( UITableViewController* inTVC, SSCellAction inChainedAction ); 我的想法是,我想使用链式菜单操作系统,允许一系列工作/响应发生(通常1-3项)... -
0 votesanswersviews
如何声明命名的嵌套块参数?
我目前有以下工作: typedef BOOL(^InnerBlockType)(int arg1, int arg2); - (BOOL)doStuff:(void(^)(InnerBlockType innerBlock))block; 但我想删除typedef并使块内联,因此参数在自动完成后可见,使其更易于使用 . 我可以't get the syntax right, though. I... -
4 votesanswersviews
如何为嵌套的UIView animateWithDuration调用组调用单个完成块?
我有一批动画调用,通过遍历数组调用 . 所有这些调用都嵌套在封装动画块中,以便它们并行有效地执行 . 我也有一个完成块,我只想在所有嵌套动画完成后触发 .问题是嵌套动画的持续时间是未知的,所以我不能简单地计算出最后一个完成的调用,并在此调用中设置完成块 . 类似地,我无法计算持续时间并在完成块上使用延迟调用 .希望一个例子可以使这更清楚 . 这是我正在尝试做的(非常简化)版本: -(void) a... -
2 votesanswersviews
UIView动画完成块未被调用
我有一个奇怪的错误,我在我正在开发的应用程序中找到了 . 在我进入细节之前,我将陈述我的问题 1 - 为什么不能调用UIView动画完成块 2 - 为什么在呈现模态视图后会调用UIView动画完成块? 我有一系列UIView动画,在视图控制器出现后开始 . 他们有完成块 . 绝大部分时间都会调用动画完成块 . 但是每隔一段时间,应用程序就进入一个完成块不被调用的状态 . 此外,当我从当前视图控... -
6 votesanswersviews
何时将在NSOperation中为completionBlock调用依赖项
来自文档: 当isFinished方法返回的值更改为YES时,将执行您提供的完成块 . 因此,在操作的主要任务完成或取消之后,操作对象执行该块 . 我正在使用 RestKit/AFNetworking ,如果这很重要的话 . 我在 OperationQueue 中的 NSOperation 中有多个依赖项 . 我使用完成块来设置我的孩子需要的一些变量(将结果附加到数组) . (task1,..... -
2 votesanswersviews
那个时刻究竟是在NSOperation上执行的completionBlock吗?
我只是想知道在NSOperationQueue拥有的NSOperation上执行completionBlock的确切时刻 . 在我的最新项目,Amazon S3的客户端(https://github.com/StudioIstanbul/SIAFAWSClient)上,我使用带有completionBlock的NSOperation来处理对Amazon REST API的请求 . 客户端能够通过名... -
0 votesanswersviews
完成块目标-C
我正在尝试用IOS在IOS中编写一个完成处理程序,但我不确定它为什么不起作用 . 这就是我到目前为止所拥有的 typedef void(^myCompletion)(BOOL); -(void) showAnswer { [self showAnswer:^(BOOL finished) { if (finished) { LnbScene *scene =... -
0 votesanswersviews
EXC_BAD_ACCESS . 完成块
ANSWER 当我调用fetchDailyForecast它应该是什么时,我犯了一个错误 [self.fetchController fetchDailyForecast:self.currentLocation.coordinate completionBlock:^(DailyModel *newModel) { _dailyCondition = newModel; ... -
4 votesanswersviews
如何异步调用回调块中的FetchRequest
有谁知道如何在第一次异步通信的完成块中启动另一个新的异步方法的最佳实践? 我正在测试代码,以便在与Facebook的另一个异步通信的完成回调中异步调用NSFetchRequest(coz STACKMOB iOS SDK与服务器内部同步) . 代码的执行突然终止于NSFetchRequest行 . 我意识到它无法正常工作的原因之一 . 我想只要调用[managedObjectContext exe...