问题标签 [objective-c-blocks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 如何内联编写 Objective-C 块?
我正在尝试使用objective-c 块实现二进制搜索。我正在使用该功能indexOfObject:inSortedRange:options:usingComparator:
。这是一个例子。
我想知道如何将外部定义的 Objective-c 块与上述功能一起使用。这里有两个比较函数。
这些是参考以下声明编写的,这些声明可以在NSObjCRuntime.h
.
iphone - 块而不是 performSelector:withObject:afterDelay:
我经常想在未来几微秒内执行一些代码。现在,我这样解决它:
还有这个:
它有效,但我每次都必须创建一个新方法。是否可以使用块代替这个?基本上我正在寻找一种方法,如:
那对我真的很有用。
iphone - UIView 基于块的动画的重复计数
我查看了基于块的动画的方法,并注意到没有等效的参数或选项[UIView setAnimationRepeatCount:]
。
将动画重复固定次数的最简单方法是什么?例如,您是否使用完成块链接它们?
objective-c - 如何在 Objective-C 的属性中存储块?
我想将objective-c 块存储在一个属性中以供以后使用。我不知道该怎么做,所以我用谷歌搜索了一下,关于这个主题的信息很少。但我最终设法找到了解决方案,我认为这可能值得像我这样的其他新手分享。
最初我认为我需要手动编写属性才能使用 Block_copy 和 Block_release。
幸运的是,我发现块是 NSObjects并且- copy
/- release
等同于Block_copy
/ Block_release
。所以我可以@property (copy)
用来自动生成 setter 和 getter。
objective-c - 在块内创建对象
可以从块内创建对象吗?
iphone - NSComparisonResult 和 NSComparator - 它们是什么?
什么是NSComparisonResult
和NSComparator
?
我见过一种类型定义,类似这样的:
它与函数指针有什么不同吗?
另外,我什至无法猜测^
符号的含义。
objective-c - Grand Central Dispatch - 在线程之间传递数据
我正在尝试在后台运行一个进程以生成一个字符串,然后在主线程中使用该字符串(发送到远程服务器)。代码在模拟器中运行良好,并且字符串按预期记录了两次。
在设备(iPad、4.2 和各种 iPhone)上,每次使用 EXC_BAD_ACCESS 都会崩溃。似乎 myString 超出了范围,但这似乎与Wikipedia上使用相同原理的示例背道而驰。
代码如下:
有谁知道为什么会崩溃,以及修复它的最佳方法?
我犯了简化代码以保持我的问题清晰的错误。
在主队列上,我实际上通过另一个呼叫向自己发送消息,这会导致访问不正确。
解决方案是在我的异步队列上调用该方法,并在方法内部将代码包装在 dispatch_async(dispatch_get_main_queue(), ^{}); 堵塞。
希望这会对其他人有所帮助。
ios - 您如何在延迟后触发块,例如 -performSelector:withObject:afterDelay:?
有没有办法在延迟后调用带有原始参数的块,例如使用performSelector:withObject:afterDelay:
但带有int
//之类的参数double
?float
objective-c - 为什么 nil / NULL 块在运行时会导致总线错误?
我开始大量使用块,并很快注意到 nil 块会导致总线错误:
这似乎违背了 Objective-C 忽略 nil 对象的消息的通常行为:
因此,在使用块之前,我必须求助于通常的 nil 检查:
或使用虚拟块:
还有其他选择吗?为什么 nil 块不能简单地是一个 nop 有什么原因吗?
objective-c - 是否可以将块定义为类的成员?
我正在尝试在 Objective-C 中实现一个非常简单的策略类,它允许内联定义策略,而不是通过继承来定义。目前我的代码如下所示:
我认为这会起作用,但我得到了错误
'(' 标记之前的预期说明符限定符列表
任何想法如何使这项工作?