问题标签 [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.
llvm - 如何通过 LLVM C++ API 调用 Objective-C 块?
比如说,我有一个 Objective-C 编译的模块,它包含以下内容:
...然后,使用 LLVM C++ API,我加载该模块并创建一个 CallInst 来调用该returnABlock()
函数:
然后如何调用通过returnABlockCall
对象返回的块?
iphone - Problems with Reachability Apple class
I have an App that uses UITabBar and it has to download contents from the Internet, so I decided to use the class Reachability. When I launch it, the method works greatly, but if I don't wait that all the job is done and I go to another tabBar index, then I go back to the first one, the App holds on and doesn't move. Here's some code:
I'll paste everything else you may need.
iphone - 我的块没有保留它的一些对象
从块文档:
在引用计数环境中,默认情况下,当您在块中引用 Objective-C 对象时,它会被保留。即使您只是引用对象的实例变量也是如此。
我正在尝试实现一个完成处理程序模式,其中在执行工作之前将块分配给对象,并且在执行工作后由接收器执行块。由于我是一个优秀的内存公民,块应该拥有它在完成处理程序中引用的对象,然后当块超出范围时它们将被释放。我知道我必须copy
将块移动到堆中,因为块将在声明它的堆栈范围内存活。
但是,我的一个对象意外地被释放。经过一番尝试,当块被复制到堆中时,似乎某些对象没有保留,而其他对象则保留。我不确定我做错了什么。这是我可以生成的最小测试用例:
在某些方法的范围内:
我希望这两个对象在某个时候都被块保留,我当然希望它们的保留计数相同。相反,我得到了这个输出:
o
( 的子类NSObject
) 被正确保留并且不会超出范围。但是mailViewController
不会保留,并且会在块运行之前被释放,从而导致崩溃。
iphone - 试图理解 iOS 上的块
我试图了解如何在 iOS 上使用块。我已经阅读了 Apple 的文档,但是像往常一样,它们是模糊和不完整的,并且没有提到一些重要的信息。我也用谷歌搜索但没有成功。这就是我试图做的一个练习来理解这一点。
我创建了一个块来读取字符串并将字符串与之前读取的字符串进行比较。如果字符串不相同,返回YES,如果相同,返回NO。
我就是这样做的:
我在 .h 上声明了这一点
我在 .m 上声明了这一点,在 viewController 的 viewDidLoad 内
这就是我的使用方式:我有一个线程可以做到这一点:
这些是我遇到的问题:
- 该块总是返回 YES(字符串不同)
- 我不愿意在videDidLoad 中声明这个。我应该如何声明它,以便我可以在全局范围内使用它作为一种方法?我应该像使用方法一样放置这个吗?
- 我在块内调用方法“getString”。可以吗?
- 我觉得在.m 上声明块变量很奇怪。如我所见,我应该在 .h 上声明块变量,然后在 .m 上使用它们。我试图这样做,但收到一个错误。
- 我已经在块的第一行设置了一个调试点,但它并没有停在那里;
- 块内的 NSlog 行不打印任何内容。没有调用块吗?
你们能帮我解决这个问题吗?
iphone - 在 init 中声明块是否安全?
我需要调用一个需要一个块的函数。如果我在 init 方法中这样做会导致问题吗?
iphone - 在 Objective C 块中执行选择器
我第一次尝试使用 Objective C 块,因为我非常喜欢在 Python 和 Haskell 等语言中使用闭包。
我遇到了一个问题,但是我希望有人可以提供帮助。
以下是我遇到的问题的最简单版本。
所以这似乎是某种内存管理问题,这并不让我感到惊讶,但我只是没有看到解决方案的知识。可能我正在尝试的事情甚至不可能。
有兴趣看看其他人的想法:)
iphone - iphone - 块没有按预期工作
为了学习,我有一个代码,我正在尝试将其编写为块。
我有这个 NSMutableArray 是 NSDictionary 对象的集合。在每个字典中都有一个与键“时间”相关联的 NSString 对象。我正在尝试查找该字典中是否存在给定时间。如果我不使用块,我会这样做:
使用块...
但这永远不会建立任何东西。所有“aValue”都为零,所有 [obj objectForKey:@"time"] 都作为空字符串出现。
iphone - 我应该在我的应用程序中使用 iOS 4 的新功能吗?为什么?
我正在更新我的一个应用程序,但我遇到了一个难题:
在我想添加 iOS 4 独特功能的地方,我别无选择,只能为支持的设备实现它们——这里没有两难选择。
困境是当我有两种方法可以达到相同的效果时,一种是“旧方式”,一种是“新方式”。一个很好的例子是使用动画块,我可以使用这种语法:
仅在 iOS 4.0 中受支持。或者使用包括4在内的所有版本都支持的旧方式。(还有很多其他类似的例子。)
你做什么,为什么?
这些块真的很棒,但如果我想支持以前的版本,我将不得不编写更多代码?在那种情况下使用它们我能得到什么?
objective-c - Linux 上的编译器是否支持 Objective-C 块?
如何在 linux 上编译以下代码?使用 Ubuntu 10.10 (Maverick Meerkat)。
我试过了:
并得到:
任何有关如何使这项工作的指导表示赞赏。根据反馈编辑问题,谢谢。
objective-c - 为什么 objc 块的分配必须是“复制”而不是“分配”?
我开始在 Objective-C 中使用块,并且还没有真正找到一个很好的解释来解释为什么一个块,如果你要将它分配给一个实例变量,必须分配copy
而不是assign
?
例如: