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

    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()

    68320发布于 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.6K20发布于 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

    1.9K10发布于 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

    22700编辑于 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

    87620发布于 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.1K10编辑于 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

    2K30编辑于 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

    26010编辑于 2024-07-30
  • 来自专栏贝塔博客

    Custom template tags and filters

    On output, they’re escaped if auto-escaping is in effect and presented unchanged, otherwise.Safe strings are strings that have been marked safe from further escaping at output time. Any necessary escaping has already been done. In this case, you can let Django take care of all the auto-escaping handling for you. You need to ensure it really issafe, and what you do depends on whether auto-escaping is in effect.

    1.2K40发布于 2020-03-05
  • 来自专栏每日一篇技术文章

    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.1K40发布于 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 =

    70010编辑于 2022-03-30
  • 来自专栏韦弦的偶尔分享

    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)

    2K20发布于 2021-04-19
  • 来自专栏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
  • 来自专栏码客

    使用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.7K10发布于 2018-08-31
领券