gpt4 book ai didi

ios - "unrecognized selector sent to instance"用推文创建 NSDictionary 时

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:44 25 4
gpt4 key购买 nike

我正在 Twitter 上搜索带有此代码的推文:

- (void)fetchTweets
{

NSURL *url = [NSURL URLWithString:@"http://search.twitter.com/search.json"];
NSDictionary *params = [NSDictionary dictionaryWithObject:@"#winning" forKey:@"q"];

TWRequest *request = [[TWRequest alloc] initWithURL:url
parameters:params
requestMethod:TWRequestMethodGET];

[request performRequestWithHandler:
^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {

if (responseData) {
NSError *jsonError;
tweets =
[NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&jsonError];


if (tweets) {
// NSLog(@"%@", tweets);
}

else {
NSLog(@"%@", jsonError);
}

}

[[self delegate] receivedTweets];

}];

[self performSelector:@selector(fetchTweets) withObject:nil afterDelay:30];

tweets 变量是一个 NSArray,我正尝试使用以下代码将其放入 NSDictionary:

NSDictionary *tweet = [[TwitterHandler sharedInstance].tweets objectAtIndex:indexPath.row];

我确实得到了推文的 JSON 文本,但是当我试图将它们添加到字典中以便最终将它们放入表中时,我得到了“无法识别的选择器发送到实例”错误。

我不确定为什么会收到此消息,如有任何帮助,我们将不胜感激。

最佳答案

在这段代码中:

 if (responseData) {
NSError *jsonError;
tweets =
[NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&jsonError];


if (tweets) {
// NSLog(@"%@", tweets);
}

else {
NSLog(@"%@", jsonError);
}

tweets 是否与您使用此代码获得的相同:

[[TwitterHandler sharedInstance].tweets

如果是这样,在我看来,您正在将它分配给一个自动释放的对象,因此它最终会被释放,您最终会得到一个指向已释放对象的指针。

分配时最好保留它或使用保留属性。

有点像

tweets = 
[[NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&jsonError] retain];

或者,假设 tweets 是一个 retain orpperty:

self.tweets = 
[NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&jsonError];

不要忘记在不再需要时释放它(至少在你的类的dealloc中)

编辑

好的,事情是这样的,它与内存管理无关(错误的初始猜测!):我试过你的 URL,它返回:

{"error":"You must enter a query."}

这是一个 JSON 字典。然后 JSON 解析器将其识别为一个字典并返回给你一个字典。您可以将它存储在 NSArray* 中,但实例化的对象仍然是一个字典,并且只会响应 NSDictionary 方法。正如您在打印时评论显示的那样,它会打印一本字典。

关于ios - "unrecognized selector sent to instance"用推文创建 NSDictionary 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10760037/

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