美文网首页iosiOS 开发
NSOperation and NSOperationQueue

NSOperation and NSOperationQueue

作者: kingnight | 来源:发表于2015-06-22 11:57 被阅读142次

    WWDC Advanced NSOperations 

    https://developer.apple.com/videos/wwdc/2015/?id=226

    WWDC app use NSOperation

    Download Settings

    Download Schedule

    Download News

    Download Video list

    Mark Favorites

    Leave Feedback

    Log In

    Developer Status

    Download Pass

    Download Photos

    Watch Videos

    Push Notifications

    Access CloudKit

    Location Permission

    Display Alerts

    Upload Analytics

    Agenda

    Core Concepts

    1NSOperationQueue:ahigh-level wrapper around a dispatch queue

    1.1 NSOperationQueue makes it easy tocanceloperations that have not yet begun executing

    1.2 Serial Queues: set  maxConcurrentOperationCount=1 ,load a bundle of operations into this queue,the queue will pull off these operations one by one and execute them in order,the next operation will not begin executing until the previous has finished

    1.3 Concurrent Queues:setmaxConcurrentOperationCount=default , run as many as system allows,run multiple operationssimultaneously

    2 NSOperation:a high-levelwrapperaround a dispatch block

    2.1 it’s class , you can subclass it,provide your own custom logic on how it executes

    2.2 lifecycle

    2.2.1  cancel

    can not change from the “finished” state to the “cancelled” state ,   If you want cancel an operation ,there are some cases where won’t actually cancel

    call cancel method

    operationA.cancel()

    2.2.2 ready

    Serial Queues:which one is ready will execute first , maybe not the the first one pull into the queue

    2.3  dependency:express a strict ordering

    an operation will become ready if all of its dependencies have finished executing

    not limited by queues:If you have two operation queues in your application,operations in the first queue can be dependent on the operations in the second queue

    let operationA = ...

    let operationB = ...

    operationB.addDependency(operationA)


    Beyond the Basics

    1 UI Operations ,not just the background

    Authentication Videos

    Alerts

    “Modal” UI

    2 Block Operations

    It’s blocks all the way down

    NSOperation to execute a block

    Dependencies for blocks

    Leaving feedback

    3 GeneratingDependencies

    When two operations love each other...

    “Never execute this until after executing that”

    4Mutual Exclusivity

    There can be only one

    cross-queue dependencies are really powerful

    Alerts

    Videos

    Loading database

    Sample Code

    Operation

    NSOperation subclass

    Adds “conditions”

    Adds “observers”

    Example operations

    Groups

    URLSessionTask

    Location

    Delay

    OperationCondition

    Generates dependencies

    Defines mutual exclusivity

    Checks for satisfied conditions

    Example conditions

    MutuallyExclusive

    Reachability

    Permissions

    OperationObserver

    Notified about significant events

    Operation start

    Operation end

    Operation generation

    Example observers

    Timeouts

    Background tasks

    Network activity indicator

    Summary

    Operations abstract logic

    Dependencies clarify intent

    Describe complex behaviors

    Enables powerful patterns

    相关文章

      网友评论

        本文标题:NSOperation and NSOperationQueue

        本文链接:https://www.haomeiwen.com/subject/pnlrxttx.html