gpt4 book ai didi

ios - 使用 stringWithFormat 时出现 EXC_BAD_ACCESS?

转载 作者:可可西里 更新时间:2023-11-01 03:28:11 24 4
gpt4 key购买 nike

在部署我的应用程序时,我收到错误消息:“线程 1:程序收到信号:“EXC_BAD_ACCESS”。

我的代码如下:

-(NSDictionary *)syncWithList:(NSInteger)listID
{
NSString *urlit = [NSString stringWithFormat:@"http://0.0.0.0:3000/lists/%@/syncList.json?auth_token=%@",@"xxxxxxxxxxx",listID];
// **Here I got the error message: "Thread 1:Program received signal: "EXC_BAD_ACCESS"**
NSLog(@"url: %@",urlit);
NSURL *freequestionurl = [NSURL URLWithString:urlit];
ASIHTTPRequest *back = [ASIHTTPRequest requestWithURL:freequestionurl];
[back startSynchronous];
self.listData = [[back responseString] objectFromJSONString];
NSLog(@"%@",listData);
NSDictionary *dicPost = [listData objectAtIndex:0];
return dicPost;
}

非常感谢!!!

最佳答案

您不得使用 %@ 说明符格式化 NSInteger(在当前 iOS 版本中它只是一个类型定义的 int)。以字符串格式编写 %@ 基本上意味着“调用对象上的 description 并使用结果”。
但是 NSInteger 不是一个对象,它是一个原始类型。
您会遇到内存异常,因为当 listID 为 42 时,您访问了内存地址为 42 的对象。这绝对不是您想要的。

-(NSDictionary *)syncWithList:(NSInteger)listID
^^^^^^^^^
NSString *urlit = [NSString stringWithFormat:@"http://0.0.0.0:3000/lists/%@/syncList.json?auth_token=%@",@"xxxxxxxxxxx",listID];
^^

只需为 listID 使用 %i 格式说明符而不是 %@

NSString *urlit = [NSString stringWithFormat:@"http://0.0.0.0:3000/lists/%@/syncList.json?auth_token=%i",@"xxxxxxxxxxx",listID];

关于ios - 使用 stringWithFormat 时出现 EXC_BAD_ACCESS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10040454/

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