问题标签 [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.
iphone - 块和核心运动崩溃
我正在使用 Core Motion 的推送处理程序进行加速度计更新:
此代码崩溃。如果我根本不复制该块,我会在暂停/恢复时间歇性崩溃。如果我删除autorelease
它工作正常,但我认为这会产生泄漏。
我还尝试将块分配给 ivar 并在[motionManager stopAccelerometerUpdates]
. 崩溃也一样。
怎么会?我一直认为我必须平衡任何copy
/retain
与release
/ autorelease
?
objective-c - 块内存管理
在这个 Apple 参考中,objective-c 中有一个 Blocks 对象的概念概述:
http://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Blocks/Blocks.pdf
但是,它并没有真正解释两个与我有关且可能与其他人有关的主题。第一个问题是这样的:我可以将 nil 分配给 Block 引用吗?或者我应该使用NULL?或者我不能使用它们?
第二个问题在于内存管理领域。比如说,我已经声明了这样一个在堆栈上创建块对象的方法。
这个对象是在某个范围内创建的,在它离开后将被销毁。但是 TheClass 对象实际上将存储对这个(几乎被破坏的)块的引用:
如何为这样的块声明类属性?这两者有什么区别:
?
在 Apple 文档中明确指出,块复制将块移动到堆中。但如果我只是保留它呢?超出makeTheClass
方法范围后会被销毁吗?
objective-c - 在 iOS 上运行时检查块的可用性
我需要在运行时测试块的可用性,以便我可以处理与 iOS 3 的向后兼容性。有什么提示吗?
编辑:到目前为止我正在做if (!NSClassFromString(@"NSBlockOperation")) {...}
似乎正在工作......
iphone - 使用 CoreData 的 Grand Central Dispatch (GCD)
我在我的应用程序中使用 Grand Central Dispatch (GCD) 来完成一些繁重的工作。该应用程序使用 Core-Data 进行数据存储。这是我的场景(以及相关问题):
作为 的结果[self saveManagedObjectContext]
,fetchResultsController
委托方法被自动调用。因此,UI 更新逻辑启动。
现在我的问题是,我需要使用main_queue
for-saveManagedObjectContext
吗?我应该在我NSManagedObject
的 in上执行所有操作main_queue
吗?一些更新的操作NSManagedObject
可能需要 2-3 秒。请指教。
iphone - Grand Central Dispatch (GCD) 和异步 API
我正在使用 Twitter API 发布推文。有时这可能需要一些时间,所以我想在后台执行“推文发布”操作。为此,我正在使用 GCD,如下所示:
问题是,我没有收到委托回调!我错过了什么?
objective-c - iOS 4 - 使用块作为类的成员
我希望有人可以帮助我理解用作类成员时块的语法。我有一些实际上运行良好的代码:
这行得通,但我想了解typedef
语句的语法;以及是否真的需要使用 typedef。
我读到的内容typedef
是建议在这种情况下使用,因为它使代码更清晰;但是在没有typedef
. 我对 typedef 的理解是语法基本上是:
如:
但是我的typedef
语句的语法与此不符。所以我的问题是:
- 我的语句的语法
typedef
与其他语句有何不同typedef
/我使用的语法实际上对编译器意味着什么? - 是否可以在不使用的情况下将块作为类的成员
typedef
?
objective-c - 块和线程
我想知道 c / cocoa 中的块是否在主线程的单独线程上运行。它们对于执行计算量大的代码同时让 UI 保持响应是否有用?
objective-c - 使用块在“self”上保留循环
恐怕这个问题很基础,但我认为它与许多陷入困境的 Objective-C 程序员有关。
我听说的是,由于块捕获其中引用的局部变量作为const
副本,self
因此在块内使用可能会导致保留周期,如果该块被复制。因此,我们应该使用__block
强制块直接处理self
而不是复制它。
而不仅仅是
我想知道的是:如果这是真的,有没有办法可以避免丑陋(除了使用GC)?
objective-c - 我在哪里可以找到关于 Objective-C 块的好的介绍或文档?
我正在尝试在 Objective-C 中使用块。我已经完成了本教程,但我想了解更多关于块的信息。
我应该在哪里寻找有关 Objective-C 块及其用法的更好的文档或教程?
iphone - 将 BOOL * 传递给 ALAssetsLibrary
嗨,我需要将 BOOL 传递给
枚举块它具有以下签名。
并且文档说:
Stop:: 指向布尔值的指针;将值设置为 YES 以停止枚举。
但是,如果我尝试将值设置为
我收到以下警告,枚举仍在继续。
所以我的问题是如何将布尔值作为指向停止参数的指针传递?
任何帮助将非常感激。