问题标签 [nsoperation]
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 - Mac OS X 10.6 中的 NSOperation 是否存在错误?
NSOperation
如果我在发送给它之前释放一个实例,-init
我会得到一个segmentation fault
.
我认为这是有效代码的原因:
- Apple 在其文档中做到了这一点。
- Gnustep 是在它
implementation of NSNumber
的 . (至少是。) NSObject
s-init
不做任何事情,因此-release
,属于的NSObject
应该在此之前工作。
- 你怎么看,这是一个错误吗?
- 你能告诉我另一个具有相同行为的类的例子吗?
- 知道为什么会这样吗?
iphone - NSOperations 队列和处理应用程序退出
我即将创建一系列NSOperation
s 并在队列中运行它们。
它们都是顺序的,一次运行一个。
这些操作将从 Web 获取数据并创建和保存核心数据托管对象。
如何处理应用程序退出的情况?由于操作在分离线程中运行,我怎样才能让主线程等到当前操作“安全”退出?在某些情况下,我很高兴线程(操作)在它们完成之前退出,因为在进一步的应用程序启动时,作业将继续并从中断的地方继续。
非常感谢,
麦克风
iphone - NSOperation 中的异步方法
我正在从 Facebook Connect 获取一些数据(使用 FBConnect Objective-C 2.0 框架),并且我在 NSOperation 中完成所有这些工作。它在 NSOperation 中,因为我还有其他几个操作也在运行,这就是其中之一。
问题是所有 FBConnect 调用都是异步的。正因为如此,NSOperation 的 main 方法很快完成,操作被标记为完成。
有什么办法可以克服这个吗?FBConnect 中似乎没有同步选项!
非常感谢,
麦克风
iphone - iPhone/Cocoa Touch - 多线程问题(Stanford Presence 3 项目)
我在代码中设置了断点以查看问题出在哪里,我发现程序在 cellForRowAtIndexPath 方法中加载单元格时会崩溃,特别是当它从适当的数组 (followeesPhotoURLs) 中检索照片时。这是因为数组是空的 - 因为主线程决定在专用于从互联网下载的线程完成执行(它确实开始执行)之前执行单元加载方法,所以从未下载过照片。
我查看了该课程的审核员讨论组页面,发现其他人也有同样的问题,但该线程从未解决该问题,我通过电子邮件发送了无济于事: http ://groups.google.com/group/iphone- appdev-auditors/browse_thread/thread/ccfc6ae99b4cf45d/ef1b8935e749c7c2?hl=en&lnk=gst&q=presence3#ef1b8935e749c7c2
iphone - 排队并发和非并发 NSOperations 的问题
我有一个 NSOperationQueue ,它包含 2 个 NSOperations 并设置为通过设置setMaxConcurrentOperationCount
为 1 一个接一个地执行它们。
其中一个操作是标准的非并发操作(只是一个main
方法),它同步地从 Web 检索一些数据(当然是在单独的操作线程上)。另一个操作是并发操作,因为我需要使用一些必须异步运行的代码。
问题是我发现并发操作只有在首先添加到队列时才有效。如果它发生在任何非并发操作之后,那么奇怪的是该start
方法被调用得很好,但是在该方法结束并且我已经设置我的连接来回调一个方法之后,它永远不会这样做。之后不会执行队列中的进一步操作。就好像它在 start 方法返回后挂起,并且没有调用来自任何 url 连接的回调!
如果我的并发操作首先放在队列中,那么一切正常,异步回调工作,后续操作在完成后执行。我完全不明白!
你可以在下面看到我的并发 NSOperation 的测试代码,我很确定它是可靠的。
任何帮助将不胜感激!
主线程观察:
我刚刚发现,如果并发操作首先在队列上,那么该[start]
方法将在主线程上调用。但是,如果它不是队列中的第一个(如果它在并发或非并发之后),[start]
则不会在主线程上调用该方法。这似乎很重要,因为它符合我的问题的模式。这可能是什么原因?
并发 NSOperation 代码:
排队码
delegates - NSOperation 不会取消 NSXMLParser。继续调用委托上的方法导致崩溃
我正在尝试在另一个线程上下载一些 XML,并对其进行解析。
我释放“控制器”,然后在 NSOperationQueue 上调用 cancelAllOperations。并在尝试将 nSXMLParser 的委托设置为 nil 的 NSoperation 上实现方法“取消”。
但是大约一秒钟后,NSXMLParser 仍然活着并且正在踢并调用它的委托(现在不再存在)上的方法,从而导致崩溃。
我只是不明白,我做错了什么?
iphone - 导航控制器中带有 UITableView 的 UIActivityIndicatorView
我正在开发一个非常简单的应用程序,它是一个带有表格视图的导航控制器,当用户单击一行时,他会被定向到详细信息视图。
但是,详细信息视图从 Core Data 中提取数据。我正在提取相对大量的数据,加载大约需要三秒钟。
我想添加那个 UIActivityIndicatorView 来显示进度。
一旦用户单击该行,我就尝试启动动画,因此我将其设置为在 didSelectRowAtIndexPath 中进行动画处理
由于某种原因,活动指示器不会在详细信息视图的推送之前启动。
知道为什么吗?还是实现这种想法的最佳方式?
~阿达姆
iphone - NSOperation performSelectorOnMainThread 崩溃
我正在从 NavigationController 的子视图调用 NSOperation。
Operation 从服务器加载一些数据,对其进行解析,然后发送一个
当工作完成时。这通常工作...
问题是当我在 NSOperation 执行其工作时从导航控制器按下后退按钮时,应用程序崩溃,因为该操作引用了一个已释放的实例。
我试过保留操作 - 但它仍然崩溃......
提前致谢
iphone - iPhone - 从 NSOperation 返回
我正在使用 NSOperation 的子类来执行一些后台进程。我希望在用户单击按钮时取消操作。
这是我的 NSOperation 子类的样子
这就是我将此类的对象添加到队列并侦听 KVO 通知的方式
operationQueue = [[NSOperationQueue alloc] init]; [操作队列 setMaxConcurrentOperationCount:5]; [operationQueue addObserver:self forKeyPath:@"operations" options:0 context:&OperationsChangedContext];
要取消操作(例如单击按钮),我尝试调用 -cancel 但它没有任何区别。还尝试调用 -finish 但即使这样也不会改变任何东西。
每次我向队列添加操作时,队列大小只会增加。调用完成(使用 NSLog 语句检查),但它并没有真正结束操作。我仍然不太有信心我做对了
有人可以告诉我哪里出错了吗?
非常感谢