• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

objective-c - 使用 ASIHTTPRequest 作为 NSDictionary 键

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:38:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试使用 ASIHTTPRequest/ASIFormDataRequest 作为 NSDictionary 中的键,如下所示:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:GPUserData.userlogin forKey"username"];
[request setPostValue:GPUserData.password forKey"password"];
[request setDelegate:self];
[_delegates setObject:delegate forKey:request];
[_selectors setObject:[NSValue valueWithPointer:selector] forKey:request];

[request startAsynchronous];

但是,当我尝试从 中访问 [_delegate objectForKey:request] 时,它不会返回正确的数据(nils 或随机)- requestFinished:,所以我使用临时解决方案:

[_delegates setObject:delegate forKey:[request url]];
[_selectors setObject:[NSValue valueWithPointer:selector] forKey:[request url]];

但是 [request URL] 对于每个单独的请求并不是唯一的。我知道要成为可行的关键,it needs to have -hash and -isEqual: return the same result ,即如果对象返回 YES-isEqual: 那么它们都必须从 -hash 返回相同的值。

ASIFormDataRequest : ASIHTTPRequest : NSOperation : NSObject 我看不到从 NSObject 覆盖 -isEqual:-hash 的方法ASIHTTPRequest 实现 (NSCopying) 协议(protocol)。

那是什么?为什么我不能将请求用作 key ?是否有其他我可以使用的请求的唯一标识符?

感谢任何帮助。为了获得完整的引用,我正在尝试实现一个双层回调,其中 WebServices 类解析 -requestFinished 上的数据(并处理网络错误和重新登录)和然后进行另一个回调,因此只有 JSON 数据作为 NSDictionary 发送。



Best Answer-推荐答案


您能否将唯一值存储到 request.tag 中,或者使用 userinfo 字典存储您需要存储的数据?例如:

request.userInfo = [[NSMutableDictionary alloc] initWithObjectsAndKeys"value", @"key", nil];

关于objective-c - 使用 ASIHTTPRequest 作为 NSDictionary 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6471683/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap