【问题标题】:Do I need a protocol for notification?我需要通知协议吗?
【发布时间】:2009-05-12 15:14:32
【问题描述】:

我有使用 NSURLConnection 的 classDownload。我想将所有 NSURLConnection 事件保留在 classDownload 中。 ClassA 想使用classDownload 的同时也接收connectionDidFinishLoading 等通知,在classDownload 中称为Finish。如何从 classDownload 获取通知到 ClassA?

【问题讨论】:

    标签: iphone protocols nsurlconnection nsnotifications


    【解决方案1】:

    假设classDownloadNSURLConnection 的委托,您可以在调用委托方法时使用NSNotificationCenter 广播事件。然后,在classA 中,使用addObserver: 订阅classDownload 中的事件。如果您需要任何说明或代码 sn-ps,请告诉我。

    编辑

    要直接回答标题中的问题,不,您不需要协议来订阅使用NSNotificationCenter 的对象发布的事件。

    【讨论】:

    • 谢谢。 NSNotificationCenter 的 notificationSelector 值来自哪里?
    • 你的意思是在addObserver方法中吗?这只是事件发生时应该在传递给它的类上调用的选择器。您将函数签名包装在 @selector() 中以获取它。例如,如果您在 classA 中有一个名为 downloadFinished 的方法,该方法接受 1 个参数,您可以将 @selector(downloadFinished:) 传递给 addObserver: 方法调用。
    • 谢谢。不管我做什么,它一直在下载我的主页,即使我给它下载不同的文件。我试过 NSLog(@"request %@:", [request URL]);查看它在连接中获得的 URL,但没有输出到控制台。你有什么建议吗?
    • 这听起来与您原来的问题不同。如果您的通知正常工作,我建议将此标记为已回答,然后就下载错误页面的问题提出一个新问题。通过这种方式,您还将获得更多帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多