草庐IT

dispatch_block_t

全部标签

ios - How to indent documentation in appledoc/HeaderDoc(关于带参数的 block 的文档)

我创建了一个将block作为参数的方法。该block需要一些参数,所以我想缩进文档,就像Apple在其具有类似格式的方法中所做的那样......一个简单的例子,它在代码中的样子是:/**Loadsaprojectfromwebservice.@paramsecurityKeyThesecuritykey.@paramblockTheblocktoexecuteafterthewebservicereturnedalldata.Theblocktakesfivearguments:@paramdataThedata.@paramfieldsSomefields.*/-(void)load

ios - 无法设置完成 block swift 2.0 w/SDWebImageCompletionBlock

当我声明SDWebImageCompletionBlock时,它会在编译“使用未声明的类型类型‘SDWebImageCompletionBlock’之前抛出此错误:letblock:SDWebImageCompletionBlock!={(image:UIImage!,error:NSError!,cacheType:SDImageCacheType!,imageURL:NSURL!)->Voidin}当我设置没有完成block的imageView时,这是有效的:self.imgView!.sd_setImageWithURL(url,placeholderImage:UIImage(

ios - 在 Swift 中创建 block 不起作用

我正在尝试在Swift中创建block。我已经创建了类并像这样声明了blocktypealiasJSONParserBlock=(dict:NSDictionary?,error:NSError?)->Void变量声明:varblock:JSONParserBlock!和功能:funcGetdata(WebService:String,RequsetedParameterParam:NSDictionary?,BLOCK:JSONParserBlock!)->Void{}但我的问题是当我从另一个类调用这个函数时,这个函数没有执行函数调用是这样的:varobjJsonParser:Jso

ios - CATiledLayer 显示以前的图 block

当使CATiledLayer支持的View失效时,先前的图block仍然“卡住”并且未正确失效。这似乎发生在View无效时(在主线程上),而与此同时,图block渲染线程仍在处理以前版本的图block。不是缓存新版本的磁贴,而是缓存以前的版本。CATiledLayer支持的View是UIScrollView的subview并且是可缩放的。瓦片的渲染可能会很昂贵,并且可以使用渲染线程10毫秒。例子演示此问题的示例代码:https://github.com/Q42/CATiledLayerBug在CATiledLayer中,开始渲染所有红色方block(这大约需要3秒才能完成)每个渲染步骤

ios - ViewController 在等待分派(dispatch)信号量时作为弹出窗口

我在发出URLJSON请求时使用DispatchSemaphore进行等待,这种等待可能需要一段时间。为了克服这种情况,我决定制作一个新View,并在发出请求时将其显示为弹出窗口。为此,我使用了以下代码:functableView(_tableView:UITableView,didSelectRowAtindexPath:IndexPath){self.showPopUp()letsemaphore=DispatchSemaphore(value:0)self.api.requestMedicationsByReagent(method:1,ean:"",hash:medHash!,

ios - 完成 block 中的 UIView 动画以位移开始

我使用UIView.animate编写了一个包含两个动画的简单动画链,但是完成block中的第二个动画并不完全从第一个动画开始的位置开始,所以我在右边有奇怪的位移。有人可以帮忙吗?也许我没有完全理解tranfrom属性。UIView.animate(withDuration:3,animations:{self.redView.transform=self.redView.transform.translatedBy(x:100,y:0)}){(_)inUIView.animate(withDuration:2,animations:{self.redView.transform=se

ios - 当我在 block 中使用 self 时,我得到一个 nil。但是 self 没有释放

我使用继承BaseViewController的viewController。在BaseViewController的方法“viewDidLoad”中调用函数“monitorNetworkStatus()”。privatefuncmonitorNetworkStatus(){ReachabilityManager.shared.startMonitoring{[weakself](status,presentingVC)inprint(self?.description)}}ReachabilityManager是单例的。startMonitoring函数是这样的funcstartMo

objective-c - 当我不需要使用完成 block 时,如何在 swift 中声明 NULL/Void?

这是objective-c中的代码:[selfpresentViewController:logInViewControlleranimated:YEScompletion:NULL];到目前为止,我的代码在swift中:self.presentViewController(logInViewController,animated:true,completion:)认为它会像输入“Void”一样简单。不幸的是,还有更多内容。 最佳答案 Apple的预发布文档说:funcpresentViewController(_viewContr

swift - dispatch_queue_t! 有什么区别?和 dispatch_queue_t?

header显示dispatch_get_global_queue返回globalqueue或NULL。*@result*ReturnstherequestedglobalqueueorNULLiftherequestedglobalqueue*doesnotexist.*/@available(OSX10.6,*)@warn_unused_resultpublicfuncdispatch_get_global_queue(identifier:Int,_flags:UInt)->dispatch_queue_t!为什么返回值是dispatch_queue_t!而不是可选的dispat

ios - 在惰性变量中使用 dispatch_once 或静态变量

来自Swiftguide:Ifapropertymarkedwiththelazymodifierisaccessedbymultiplethreadssimultaneouslyandthepropertyhasnotyetbeeninitialized,thereisnoguaranteethatthepropertywillbeinitializedonlyonce.所以,据我所知,使用classSomeClass{lazyvarsomeVar:SomeOtherClass={returnSomeOtherClass()}()}不是确保使用SomeClass实例的每个人都使用与S