草庐IT

grand-central-dispatch

全部标签

ios - `[NSThread isMainThread]` 总是返回 YES

这段代码dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0),^{NSLog(@"MainThread?%d",[NSThreadisMainThread]);});显示我在主线程中。即使这样做:queue=dispatch_queue_create("nonMainQueue",NULL);仍然报告说我在主队列中。这似乎是becauseI'musingdispatchsync.这是否意味着我的代码与根本不使用dispatch_sync一样?另外:如果dispatch_sync什么都不做,那它还有

iphone - 如何使用 GCD 在后台定期运行代码块?

如何使用GCD在后台定期运行代码块?我正在尝试编写一个包含多个子系统的游戏引擎,例如渲染、物理、游戏逻辑等。有些任务应该是事件驱动的,但有些任务(如物理系统)应该在后台以恒定时间(例如1/100秒后)定期调用。我创建了一段代码,但如何在后台定期运行该代码块?GCD是合适的工具吗? 最佳答案 您需要的是GCD调度源。有关示例代码,请参阅CreatingaTimerExample. 关于iphone-如何使用GCD在后台定期运行代码块?,我们在StackOverflow上找到一个类似的问题:

iphone - 如何使用 GCD 在后台定期运行代码块?

如何使用GCD在后台定期运行代码块?我正在尝试编写一个包含多个子系统的游戏引擎,例如渲染、物理、游戏逻辑等。有些任务应该是事件驱动的,但有些任务(如物理系统)应该在后台以恒定时间(例如1/100秒后)定期调用。我创建了一段代码,但如何在后台定期运行该代码块?GCD是合适的工具吗? 最佳答案 您需要的是GCD调度源。有关示例代码,请参阅CreatingaTimerExample. 关于iphone-如何使用GCD在后台定期运行代码块?,我们在StackOverflow上找到一个类似的问题:

ios - NSInputStream 停止运行,有时会抛出 EXC_BAD_ACCESS

(已更新)简而言之,这是问题:在iOS中,我想读取一个大文件,对其进行一些处理(在这种特殊情况下编码为Base64string()并保存到设备上的一个临时文件。我设置了一个NSInputStream来从文件中读取,然后在(void)stream:(NSStream*)streamhandleEvent:(NSStreamEvent)eventCode我正在做大部分工作。出于某种原因,有时我会看到NSInputStream停止工作。我知道,因为我有一条线NSLog(@"stream%@gotevent%x",stream,(unsigned)eventCode);在(void)strea

ios - NSInputStream 停止运行,有时会抛出 EXC_BAD_ACCESS

(已更新)简而言之,这是问题:在iOS中,我想读取一个大文件,对其进行一些处理(在这种特殊情况下编码为Base64string()并保存到设备上的一个临时文件。我设置了一个NSInputStream来从文件中读取,然后在(void)stream:(NSStream*)streamhandleEvent:(NSStreamEvent)eventCode我正在做大部分工作。出于某种原因,有时我会看到NSInputStream停止工作。我知道,因为我有一条线NSLog(@"stream%@gotevent%x",stream,(unsigned)eventCode);在(void)strea

ios - 图片下载后更新单元格高度

我在UITableView中显示一些文本和图像。图像首先被下载。因为在图片下载之前,我不知道图片的大小,所以我最初放了一个固定大小的UIImageView。下载图像后,我调整了UIImageView的大小。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{//Downloadimagedispatch_async(dispatch_get_main_queue(),^{//UIImageViewresizing});});所有这一切都发生在cellForRowAtIndexPath

ios - 图片下载后更新单元格高度

我在UITableView中显示一些文本和图像。图像首先被下载。因为在图片下载之前,我不知道图片的大小,所以我最初放了一个固定大小的UIImageView。下载图像后,我调整了UIImageView的大小。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{//Downloadimagedispatch_async(dispatch_get_main_queue(),^{//UIImageViewresizing});});所有这一切都发生在cellForRowAtIndexPath

ios - 将 block 保存在字典中

我有自己的方法,它以block作为参数。我想跟踪NSDictionary中的那个block。将block添加到字典的最佳方法是什么?我尝试了这段代码,但在执行下面的行(setObject...)之后,字典仍然是空的。我认为这是因为该block不是NSObject类型。但这样做的正确方法是什么?-(void)startSomething:(NSURLRequest*)requestblock:(void(^)(NSURLResponse*,NSData*,NSError*))handler{NSURLConnection*connection=[NSURLConnectionconnec

ios - 将 block 保存在字典中

我有自己的方法,它以block作为参数。我想跟踪NSDictionary中的那个block。将block添加到字典的最佳方法是什么?我尝试了这段代码,但在执行下面的行(setObject...)之后,字典仍然是空的。我认为这是因为该block不是NSObject类型。但这样做的正确方法是什么?-(void)startSomething:(NSURLRequest*)requestblock:(void(^)(NSURLResponse*,NSData*,NSError*))handler{NSURLConnection*connection=[NSURLConnectionconnec

ios - 使用 GCD 的异步 UITableViewCell 图像加载

我目前正在尝试加载Flickr照片的UITableView列表(cs193piOSStanford,作业5)。为避免UI阻塞事件,我已将每个单元格的缩略图下载推迟到不同的队列中(但请将UI更新回主队列)。此代码不会异步加载图像,但会在我单击UITableViewCell行后添加缩略图。(见下面的截图)。知道我做错了什么吗?PS:我已经查看了其他一些stackoverflow问题和Apple的LazyTableImages示例,但我仍然相信这是实现预期结果的最简洁方法。谢谢!-(UITableViewCell*)tableView:(UITableView*)tableViewcellF