首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏网罗开发

    13 个 GCD 应用场景

    比如读取沙盒中的一些数据,然后将读取的数据展示在 UI,这个场景还有几个细分: 执行一个耗时操作后回调主线程 /// 主线程需要子线程的处理结果 func handle<T>(somethingLong: @escaping () -> T, finshed: @escaping (T) -> ()) { globalQueue.async { let data = somethingLong() () -> (), finshed: @escaping () -> ()) { let workItem = DispatchWorkItem { somethingLong func barrierHandle(code: @escaping GCDKitHandleBlock) -> GCDKit { let queue = DispatchQueue(label extension GCDKit { convenience init(valueChanged: @escaping (T) -> ()) { self.init()

    70720发布于 2021-09-09
  • 来自专栏Swift社区

    使用 Swift 实现 Promise

    class Promise<Value> { init(executor: (_ resolve: @escaping (Value) -> Void) -> Void) { class Promise<Value> { init(executor: (_ resolve: @escaping (Value) -> Void) -> Void) { executor(resolve) } func then(onResolved: @escaping (Value) -> Void) { // To implement init(executor: (_ resolve: @escaping (Value) -> Void) -> Void) { executor(resolve) } func then(onResolved: @escaping (Value) -> Void) { // store the callback in all cases

    1.7K20发布于 2021-11-26
  • 来自专栏码客

    iOS 使用WKWebView

    runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping runJavaScriptConfirmPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping , initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (String?) webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping

    2K10发布于 2019-10-21
  • 来自专栏云计算linux

    which must be escaped when used within the value 问

    查看tomact文档有一段话这样描述的“Iffalsethe requirements for escaping quotes in JSP attributes will be relaxed so Parser.STRICT_QUOTE_ESCAPING属性。        如此一来,我们知道只要在tomcat启动时将这个属性设为false就可以解决这个问题。         在执行过程中调用setenv.sh,在其中设置环境变量,如:JAVA_OPTS=%JAVA_OPTS%: -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING =false      另一种是找到conf/catalina.properties文件,在最后添加org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING

    26000编辑于 2024-12-18
  • 来自专栏编程

    用Swift写一个响应式编程库

    我们以一个获取用户信息的网络请求为例: func fetchUser(with id: Int, completion: @escaping ((User) -> Void)) { let user = result: Result) { for subscriber in subscribers { subscriber(result) } } func subscribe(_ subscriber: @escaping keyPath: String private let callback: (T) -> Void init(object: NSObject, keyPath: String, callback: @escaping 所以我们的 flatMap 应该是这样定义:flatMap(_ transform: @escaping (Value) -> Signal) -> Signal 。 理解了 flatMap 和 map 的不同,实现起来也就很简单了: func flatMap(_ transform: @escaping (Value) -> Signal) -> Signal {

    1.4K50发布于 2018-01-03
  • 来自专栏大话swift

    线程安全的iOS通用缓存库-SwiftlyCache(推广)

    ,cost:vm_size_t = 0,completionHandler:@escaping((_ key:String,_ finished:Bool) -> Void)) 可以通过Subscript public func object(forKey key:String,completionHandler:@escaping((_ key:String,_ value:Value?) forKey key: String) -> Bool public func isExistsObjectForKey(forKey key:String,completionHandler:@escaping removeObject(forKey key: String) public func removeObject(forKey key: String, completionHandler: @escaping (() -> Void)) 移除所有缓存 public func removeAll()public func removeAll(completionHandler:@escaping(() ->

    1.7K10发布于 2020-03-31
  • 来自专栏代码散人

    Vapor奇幻之旅(04Routing)

    ., value: @escaping Routing.RouteHandler) public func socket(_ segments: String..., handler: @escaping ) public func get(_ segments: String..., handler: @escaping Routing.RouteHandler) public func post(_ segments: String..., handler: @escaping Routing.RouteHandler) public func put(_ segments : String..., handler: @escaping Routing.RouteHandler) public func patch(_ segments: String..., handler : @escaping Routing.RouteHandler) public func delete(_ segments: String..., handler: @escaping Routing.RouteHandler

    91020发布于 2018-08-22
  • 来自专栏编程

    用Swift写一个响应式编程库

    我们以一个获取用户信息的网络请求为例: func fetchUser(with id: Int, completion: @escaping ((User) -> Void)) { let user = result: Result) { for subscriber in subscribers { subscriber(result) } } func subscribe(_ subscriber: @escaping keyPath: String private let callback: (T) -> Void init(object: NSObject, keyPath: String, callback: @escaping 所以我们的 flatMap 应该是这样定义:flatMap(_ transform: @escaping (Value) -> Signal) -> Signal 。 理解了 flatMap 和 map 的不同,实现起来也就很简单了: func flatMap(_ transform: @escaping (Value) -> Signal) -> Signal {

    1.2K70发布于 2018-01-29
  • 来自专栏移动端开发

    iOS Facebook和Google登录

    loginFail: loginFail description func loginWithGoogle(_ controller:BaseViewController,loginSuccess:@escaping RequestSuccess, loginFail:@escaping RequestFail) { let signInConfig = GIDConfiguration loginFail: loginFail description func loginWithFaceBook(_ controller:BaseViewController,loginSuccess:@escaping RequestSuccess, loginFail:@escaping RequestFail) { let loginManager = LoginManager(

    2.2K10编辑于 2022-12-07
  • 来自专栏iOS开发~

    iOS_WKWebView与JS交互 Demo

    webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping decidePolicyFor navigationAction: WKNavigationAction, preferences: WKWebpagePreferences, decisionHandler: @escaping webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping , initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (String?)

    3.9K20编辑于 2022-07-20
  • 来自专栏学海无涯

    Xcode15新特性

    ., body: @escaping () -> UIView) -> () = #externalMacro(module: "PreviewsMacros" nil, traits: PreviewTrait<Preview.ViewTraits>..., body: @escaping nil, traits: PreviewTrait<Preview.ViewTraits>..., body: @escaping nil, traits: PreviewTrait<Preview.ViewTraits>..., body: @escaping

    2.1K30编辑于 2023-07-09
  • 来自专栏C++ 动态新闻推送

    C++ 中文周刊 2024-06-02 第159期

    https://lemire.me/blog/2024/05/31/quickly-checking-whether-a-string-needs-escaping/ 简单实现可能是这样 bool simple_needs_escaping "') | (c == '\\')) { return true; } } return false; } 优化一下,去掉分枝 bool branchless_needs_escaping ; } for (int i : {'"', '\\'}) { result[i] = 1; } return result; } (); bool table_needs_escaping { needs |= json_quotable_character[c]; } return needs; } 更更自然的,simd inline bool simd_needs_escaping (std::string_view view) { if (view.size() < 16) { return simple_needs_escaping(view); } size_t

    30110编辑于 2024-07-30
  • 来自专栏每日一篇技术文章

    Swift3.0 - 函数和闭包

    b.name) 运行: 交换前--------------------- 小红 小白 交换后---------------------- 小白 小红 提示 交换的必须是相同的对象 *@escaping @escaping 作用 我们经常在下载等异步操作完成时,才调用闭包函数,我们有可能暂时不要把这个闭包存放在数组中,或者使用属性去引用它,那么这个时候就需要使用这个关键了 修改代码 var 也可以,但是在调用时,要进行解包 func downloadResource(url:String,complate:@escaping (Bool)->()) { downloadComplate false) } 我们如何调用 downloadResource(url: "www.baidu.com") { (flag) in print(flag) } 如果我们不需要引用完全可以不使用关键字@escaping @autoclosure 和 @escaping 组合使用方法 func serve(customer customerProvider: @autoclosure @escaping() -> String

    1.4K30发布于 2018-09-14
  • 来自专栏学海无涯

    iOS14开发-动画

    withDuration duration: TimeInterval, delay: TimeInterval, options: UIView.AnimationOptions = [], animations: @escaping = nil) open class func animate(withDuration duration: TimeInterval, animations: @escaping () -> Void = nil) // 最简单 open class func animate(withDuration duration: TimeInterval, animations: @escaping () CGFloat, initialSpringVelocity velocity: CGFloat, options: UIView.AnimationOptions = [], animations: @escaping (withRelativeStartTime frameStartTime: Double, relativeDuration frameDuration: Double, animations: @escaping

    1.2K40发布于 2021-04-23
  • 来自专栏韦弦的偶尔分享

    通过 3 个简单的步骤测试使用了系统单例的 Swift 代码

    case data(Data) case error(Error) } func load(from url: URL, completionHandler: @escaping -> Void func performRequest(for url: URL, completionHandler: @escaping Handler) } extension URLSession typealias Handler = NetworkEngine.Handler func performRequest(for url: URL, completionHandler: @escaping URLSession.shared) { self.engine = engine } func load(from url: URL, completionHandler: @escaping func performRequest(for url: URL, completionHandler: @escaping Handler) { requestedURL =

    72910编辑于 2022-03-30
  • 来自专栏Swift社区

    Swift 风味各异的类型擦除

    Swift.Error typealias Handler = (Result<Response, Error>) -> Void func perform(then handler: @escaping it has Self or associated type requirements func add(_ request: Request, handler: @escaping Error: Swift.Error> { typealias Handler = (Result<Response, Error>) -> Void let perform: (@escaping func add<R: Request>( _ request: R, handler: @escaping R.Handler ) where R.Response () -> Void) -> Void func perform(then handler: @escaping () -> Void) { closure(handler)

    1.2K20编辑于 2022-04-04
  • 来自专栏韦弦的偶尔分享

    Swift 中风味各异的类型擦除

    Swift.Error typealias Handler = (Result<Response, Error>) -> Void func perform(then handler: @escaping it has Self or associated type requirements func add(_ request: Request, handler: @escaping Error: Swift.Error> { typealias Handler = (Result<Response, Error>) -> Void let perform: (@escaping func add<R: Request>( _ request: R, handler: @escaping R.Handler ) where R.Response () -> Void) -> Void func perform(then handler: @escaping () -> Void) { closure(handler)

    2.1K20发布于 2021-04-19
  • 来自专栏码客

    使用WKWebView替换UIWebView

    runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping runJavaScriptConfirmPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping , initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (String?)

    2.3K10发布于 2019-10-22
  • 来自专栏君赏技术博客

    Jekyll-Admin-Mac-列表

    func loadObjectRequest(success: @escaping (T) -> Void, failure: @escaping (Error?) 关于 @escaping 我们在网络请求完成之后进行回调编译器会提示我们加上 @escaping。关于 @escaping我们可以参考下面资料。 func loadArrayRequest(success: @escaping ([T]) -> Void, failure: @escaping BaseRequestFailureCompletionHandle (T) -> Void, failure: @escaping (Error?) func loadObjectRequest(success: @escaping (T?) -> Void, failure: @escaping (Error?)

    3.8K10发布于 2018-08-31
  • 来自专栏Cordova封装H5 APP

    wkwebview加载完成_【Swift】WKWebView与JS的交互使用

    runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping runJavaScriptConfirmPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping , initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (String?) runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping , initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (String?)

    6.6K00编辑于 2022-03-08
领券