问题标签 [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.

0 投票
1 回答
1525 浏览

objective-c - 这是结构内的块访问同一结构中的成员变量的正确方法吗?

我正在尝试使用 Obj-C 块并尝试创建一个包含两个块的结构,其中一个块用于更改另一个块的功能。

这是一种非常迂回的方法来做一些简单的事情......并且可能有更好的方法来做到这一点,但练习的重点是让我理解块。这是代码,它不起作用,所以我错过/不理解和/或做错了什么?

0 投票
2 回答
5953 浏览

objective-c - 从 Objective-C 块创建 IMP

IMP据我所知,Objective-C 中的类型表示一个函数指针。有没有办法IMP从块指针中创建一个?谢谢你的想法。

0 投票
1 回答
4040 浏览

objective-c - 具有块完成处理程序的自定义模式窗口

我被困住了!

我正在尝试创建一个自定义模式对话框。我希望它使用块作为完成处理程序来执行类似于 NSSavePanel 的操作。

我只复制了我认为需要的重要片段。

现在我可以使用以下代码调用它:

然而一切顺利,在方法 makeKeyAndOrderFront:modalToWindow:sourceRect:completionHandler: 完成后它不会阻塞线程,因此即使用户没有选择“ok”或“cancel”也会打印“Errg”。此时会显示模态窗口,用户单击“确定”,然后执行 _handler 块。但是,如果我试图访问块中的局部变量,并且应用程序崩溃,因为一切都已经清理完毕。

从 makeKeyAndOrderFront:... 方法阻塞主线程的最佳方法是什么?这是使用块实现完成处理程序的正确方法吗?

0 投票
3 回答
3531 浏览

objective-c - 是否可以按内容比较两个 Objective-C 块?

0 投票
1 回答
2409 浏览

objective-c - 编码一个 Objective-c 块?

是否可以使用 对 Objective-C 块进行编码NSKeyedArchiver

我不认为 Block 对象是NSCoding兼容的,因此[coder encodeObject:block forKey:@"block"]不起作用?

有任何想法吗?

0 投票
2 回答
6015 浏览

cocoa - 从 beginSheetModalForWindow 获取 URL:

我正在使用 OpenPanel 来获取文件路径 URL。这有效:

这不会,导致“分配只读变量”错误:

通常,从 oPanel 的上下文中提取 pathToFile 的任何尝试都失败了。这对于小情况来说并不是什么大问题,但是随着代码的增长,我不得不将所有东西——XML 解析、核心数据等——塞进一个不合适的区域。我该怎么做才能提取 pathToFile?

谢谢。

0 投票
3 回答
3202 浏览

ubuntu - 对于使用块的 clang 程序,您需要链接哪些库

我发现(如下)在编译使用块的代码时需要使用 -fblocks。

我需要链接什么库才能让链接器解析_NSConcreteStackBlock?(在 Ubuntu 9.10 AMD64 上。)

0 投票
5 回答
4777 浏览

c++ - Clang“块”如何工作?

http://clang.llvm.org/docs/BlockLanguageSpec.txt

看起来真的很酷。

然而,

  1. 我不明白。
  2. 我没有看到它的例子。
  3. 我没有看到很难在 C++ 中按原样表达的想法的例子,但是用块来表达是微不足道的。

任何人都可以启发我吗?

0 投票
4 回答
13927 浏览

objective-c - 在 Objective-C 中复制块(即:将它们复制到实例变量)

我试图理解块。当直接传递给方法时,我知道如何正常使用它们。我现在有兴趣获取一个块,将它(例如)存储在一个实例变量中并稍后调用它。

块编程指南听起来我可以做到这一点,通过使用 Block_copy / retain 复制块,但是当我尝试运行它时,我的程序崩溃了。

我稍后尝试调用它:

有人有任何见解吗?(或者,有什么我没有得到的东西吗?)

非常感谢你!

0 投票
2 回答
3811 浏览

objective-c - 块和回调之间的性能差异是什么?

在 Snow Leopard 中引入的阻止对象的其中一项适用于以前通过回调处理的情况。传递上下文的语法要干净得多。但是,我还没有看到任何有关以这种方式使用块的性能影响的信息。使用块时我应该注意哪些性能缺陷(如果有的话),特别是作为 C 风格回调的替代品?