Iphone 声明字符串时出现奇怪的错误EXC访问

Iphone 声明字符串时出现奇怪的错误EXC访问,iphone,objective-c,ios,nsstring,stringwithformat,Iphone,Objective C,Ios,Nsstring,Stringwithformat,好的,我所做的就是用以下代码将NSString设置为一个值: NSString *stringURL = [NSString stringWithFormat:@"http://api.themoviedb.org/3/movie/%@/trailers?api_key=1523229ded5824dab8bb7840782db266",searchID]; 这是一个字符串,然后我将其转换为用于查询TMDB数据库的URL。这行代码给了我一个糟糕的EXC访问,这让我大吃一惊,因为使用这种NSSt

好的,我所做的就是用以下代码将NSString设置为一个值:

NSString *stringURL = [NSString stringWithFormat:@"http://api.themoviedb.org/3/movie/%@/trailers?api_key=1523229ded5824dab8bb7840782db266",searchID];
这是一个字符串,然后我将其转换为用于查询TMDB数据库的URL。这行代码给了我一个糟糕的EXC访问,这让我大吃一惊,因为使用这种NSString构造是我做了数千次都没有遇到问题的事情

另一件需要注意的事情是,这一行是在发出另一个查询调用之后执行的。奇怪的是,调用使stringURL以相同的方式运行,但工作正常


非常感谢您的帮助…

您需要使用%i来记录NSInteger,而不是%@

您需要使用%i来记录NSInteger,而不是%@

您需要使用以下命令 NSString*stringURL=[NSString stringWithFormat:@”http://api.themoviedb.org/3/movie/%d/trailers?api_key=1523229ded5824dab8bb7840782db266“,searchID]


由于searchID具有NSInteger类型,并且您正在使用“%@”

您需要使用以下命令 NSString*stringURL=[NSString stringWithFormat:@”http://api.themoviedb.org/3/movie/%d/trailers?api_key=1523229ded5824dab8bb7840782db266“,searchID]



因为searchID具有NSInteger类型,并且您正在使用“%@”

如果它是
NSInteger
您需要使用%ld或者您将收到警告,您也可以使用%d并通过(int)显式转换为
int
searchID

如果它是一个
NSInteger
你需要使用%ld或者你会得到警告,你也可以使用%d并通过(int)searchID显式转换到
int
?财产?您在哪里分配并初始化了它?它是由数据库中较早的查询设置的数字。它是一个读写NSInteger属性。我可以用相同的方法记录searchID的值,没有问题,所以我认为这不是searchID和object,也不是一个原语(例如NSInteger)?searchID是int,但没有问题searchID是什么?财产?您在哪里分配并初始化了它?它是由数据库中较早的查询设置的数字。它是一个读写NSInteger属性。我可以用相同的方法记录searchID的值,没有问题,因此我认为这不是searchID和object,也不是原语(例如NSInteger)?searchID是整数,没有问题是的,我从上面的响应中修复了它。是的,我从上面的响应中修复了它。这是这个家伙强调的一部分,如果你有一些基本的C知识,它可以花你多长时间;)在这一部分中,他强调,如果你有一些基本的C语言知识,你需要花多长时间才能完成这项工作;)实际上,只有在我进行OSX编程时,xcode才会给我这个警告。对于ios,它从不警告NSInteger vs.int,至少在我的XCode.Yep版本中是这样,但我在OS X和ios上都使用了一些共享单元,所以即使在我为ios编写代码时,我也会在OS X上添加%ld以表示以后不会收到警告…我明白了。这是有道理的。谢谢你的意见。我从一开始就知道这段代码中有一个愚蠢的错误,我只是完全忽略了它。和往常一样,StackOverflow是为了获胜:如果我在做OSX编程,Dactually xcode只会给我这个警告。对于ios,它从不警告NSInteger vs.int,至少在我的XCode.Yep版本中是这样,但我在OS X和ios上都使用了一些共享单元,所以即使在我为ios编写代码时,我也会在OS X上添加%ld以表示以后不会收到警告…我明白了。这是有道理的。谢谢你的意见。我从一开始就知道这段代码中有一个愚蠢的错误,我只是完全忽略了它。和往常一样,StackOverflow赢得比赛:D