Delegates in swift?

前端 未结 12 1613
天命终不由人
天命终不由人 2020-11-22 03:27

How does one go about making a delegate, i.e. NSUserNotificationCenterDelegate in swift?

12条回答
  •  天命终不由人
    2020-11-22 04:24

    Here's a gist I put together. I was wondering the same and this helped improve my understanding. Open this up in an Xcode Playground to see what's going on.

    protocol YelpRequestDelegate {
        func getYelpData() -> AnyObject
        func processYelpData(data: NSData) -> NSData
    }
    
    class YelpAPI {
        var delegate: YelpRequestDelegate?
    
        func getData() {
            println("data being retrieved...")
            let data: AnyObject? = delegate?.getYelpData()
        }
    
        func processYelpData(data: NSData) {
            println("data being processed...")
            let data = delegate?.processYelpData(data)
        }
    }
    
    class Controller: YelpRequestDelegate {
        init() {
            var yelpAPI = YelpAPI()
            yelpAPI.delegate = self
            yelpAPI.getData()
        }
        func getYelpData() -> AnyObject {
            println("getYelpData called")
            return NSData()
        }
        func processYelpData(data: NSData) -> NSData {
            println("processYelpData called")
            return NSData()
        }
    }
    
    var controller = Controller()
    

提交回复
热议问题