Zeo*_*ite 3 ios nsnetservicebrowser
我希望做这样的事情:
在 netServiceBrowser:didFindService:moreComing:
[self.foundServices addObject:aNetService];
Run Code Online (Sandbox Code Playgroud)
并在 netServiceBrowser:didRemoveService:moreComing:
[self.foundServices removeObject:aNetService];
Run Code Online (Sandbox Code Playgroud)
但是,返回的服务不会被NetServiceBrowser保留,因此给定的服务didRemoveService与数组中的服务不是同一个对象.如何比较服务以确保我删除的服务是正确的?
你过度思考这个问题,并在脑海中创造一个不存在的问题.用于removeObject:传入的对象didRemoveService:.removeObject:根据对象的响应删除isEqual:,而不是对象的地址或标识.所以这将是有效的.
答案真的很简单:
[self.foundServices removeObject:aNetService];
Run Code Online (Sandbox Code Playgroud)
Apple的描述removeObject:解释了这一点:
此方法用于
indexOfObject:定位匹配,然后使用删除它们removeObjectAtIndex:.因此,匹配是基于对象对isEqual:消息的响应来确定的.
(为了完整起见,Apple 确实提供了一个按地址删除对象的功能.那就是removeObjectIdenticalTo:.但这不是你想要的行为.只需使用removeObject:.)
参考文献:
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |