区分 NSMutableDictionary 中的几个 FBRequest - iPhone

发布于 2024-11-27 10:35:52 字数 486 浏览 0 评论 0原文

我正在我的应用程序内构建一个共享管理器,负责 Facebook 交互。 我需要一种方法让这个共享管理器保留对要求它执行某些操作的视图控制器的引用。 显然我创建了一些每个这样的控制器都可以遵守的协议。

我可以在每个方法调用中将 FBRequest 映射到视图控制器,并在请求返回时查找适当的委托。

我有两个问题:

  1. NSDictionary 保留它的值,在这种情况下我不想这样做,因为它可能会导致保留循环。有没有办法告诉 NSMutableDictionary 不保留它的值?

  2. 在某个委托被释放的情况下,我需要告诉管理器不要将任何回调转发给该委托,并且实际上取消任何实时请求。 这是检查字典值并删除委托的正确方法吗? 由于某种原因,感觉不正确的是检查值而不是键。

PS - 我知道如果 FBRequest 有 userinfo 属性或使用块的方法可能会更容易,但我很想知道在当前情况下如何解决它。

谢谢

I'm building a shared manager inside my app what would be responsible for Facebook interaction.
I need a way for this shared manager to keep a reference to the view controllers who ask for it to do some stuff.
I obviously created some protocol that each such controller can conform to.

I can map in each method call, a FBRequest to a view controller, and when the request returns, look for the appropriate delegate.

I have 2 problems:

  1. NSDictionary retain it's values, which I don't want to in this case cause it may cause retain cycles. Is there a way to tell NSMutableDictionary no to retain it's values ?

  2. In the case where on of the delegate gets released I need to tell the manager not to forward any callbacks to that delegate, and actually to cancel any live requests.
    Is it the right way to go over the dictionary values and erase the delegate.
    For some reason it just doesn't feel right to go over the values instead of the keys.

P.S - I'm aware that if FBRequest had a userinfo property or a way to work with blocks it may be easier, but I'm curious to know how to solve it in the current situation.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文