Ios 在字典中存储一组参数

Ios 在字典中存储一组参数,ios,objective-c,cocoa-touch,cocoa,nsdictionary,Ios,Objective C,Cocoa Touch,Cocoa,Nsdictionary,我有一个网络方法,它为我的API提供了一个友好的接口。比如: getWeatherForCities:(NSArray *)cityCodes startDate:(NSDate *)startDate endDate:(NSDate *)endDate useCelcius:(BOOL)useCelcius maxResults:(NSNumber *)maxResult

我有一个网络方法,它为我的API提供了一个友好的接口。比如:

    getWeatherForCities:(NSArray *)cityCodes 
              startDate:(NSDate *)startDate
                endDate:(NSDate *)endDate 
             useCelcius:(BOOL)useCelcius
             maxResults:(NSNumber *)maxResults
这在我的应用程序中被多次调用,有时与不同的参数同时调用。还有一个完成和失败块,但这里不需要它们

我想添加一个选项,告诉该方法,如果数据与上次使用相同参数请求的数据不同,则只执行完成块。通过这种方式,一些消费者可以说他们想知道一切,而其他人只能要求提供新的数据


似乎我需要某种方法来存储所有参数的表示,以及最后收到的这些参数的响应。我很想在国家统计局的字典里这样做,但我愿意接受其他想法。是否有办法将参数转换为唯一键?或者更好的解决方案?

我目前正在使用
[字典描述]
作为密钥。

还有一个想法-我可以从参数创建一个NSDictionary,并使用
哈希方法从该字典生成唯一密钥吗?我知道hash和它对等式的意义,但这是一个合理的用法吗?为每个参数创建一个字符串表示,并将它们连接到一个字符串中,并将其用作密钥是一个很好的解决方案。我看到的唯一问题是,如果你有一个巨大的字典,你可能会通过散列节省一些内存,但我不会担心这一点,直到分析和测量它成为一个真正的问题。