gpt4 book ai didi

objective-c - Objective-C快速枚举和异步服务器操作。模型帮助?

转载 作者:行者123 更新时间:2023-12-01 17:34:56 24 4
gpt4 key购买 nike

如果我有一个名为“-uploadToServer:(Object *)objectToUpload”的方法,并且有多个对象的可变数组,并且我想一个接一个地上载每个对象,那么我该如何最好地处理呢?

有三个重要的注意事项:

  • 不需要NSOperation,因为我不想处理线程问题
  • 在继续
  • 之前需要等待任务完成的通知
  • 服务器调用是异步且无阻塞的

  • 这是我已经有的一些代码:
    for (Object *task in objectsToUpload) {
    [self uploadToServer:task];
    //need to wait to get notification that upload completed
    }


    -(void)uploadToServer:(Object *)objectToUpload {
    //perform asynchronous server operation here
    //either block callback or delegate to notify
    //self that upload finished
    }

    鉴于以上情况,您认为我应该如何处理?

    最佳答案

    不需要NSOperation,因为我不想处理线程问题

    老实说,我认为这是您最简单的选择。唯一的其他方法是执行异步IO并使用运行循环。

    使用NSOperation,您需要两种不同的操作,例如UploadOperationNotifyOperation:完成所有操作后,一个上传对象,一个向主线程发送通知。

    然后,您将遍历这些对象,并将它们全部放在NSOperationQueueUploadOperation上,每个对象都依赖于上一个(addDependency:)。最后,根据最后一个NotifyOperationUploadOperation放入队列。
    NotifyOperation覆盖main如下

    -(void) main
    {
    [someObjectEgViewController performSelectorOnMainThread: @selector(finishedUpload)
    withObject: nil
    waitUntilDone: NO];
    }

    关于objective-c - Objective-C快速枚举和异步服务器操作。模型帮助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6572783/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com