我正在做一个iOS应用程序,用于抓取我的YouTube订阅的视频。 我想要导航以在第三次看到下一个视频时遇到问题。合成NSNumber“超出范围”
对于这些,我需要收集开始索引(NSNumber * youtubeStart)来添加它显示的视频数量(int const maxVideos)。
对于这一点,我在我的VideosViewController.h
@interface VideosViewController : UIViewController {
NSNumber *youtubeStart;
}
@property (nonatomic, retain) NSNumber *youtubeStart;
然后在VideosViewController.m
@synthesize youtubeStart;
static int const maxVideos = 6;
这做
- (void) navigateVideos:(id)sender
{
int navigate = 0;
int start = [youtubeStart intValue];
if(sender == bt_prev)
{
if(start >= maxVideos)
{
start -= maxVideos;
navigate = 1;
}
}
if(sender == bt_next)
{
start += maxVideos;
navigate = 1;
}
if (navigate > 0)
{
youtubeStart = [NSNumber numberWithInt:start];
NSString *url = [NSString
stringWithFormat:@"%@&start-index=%i&max-results=%i"
, myUrl, [youtubeStart intValue], maxVideos];
[self LoadOAuthUrl:url];
}
}
的方法。当我 “TouchUpInside”其中一个按钮“bt_prev”或“bt_next”将其称为“navigateVideos”。 我可以根据需要多次按bt_prev或bt_next,它可以工作,但如果我连续按bt_next 3次,youtubeStart就会超出范围。似乎无法比第三页更进一步。
你能帮我理解为什么以及如何处理它。
我的其他综合变量不超出范围。
非常感谢您的帮助。
编辑:我从x代码在ipad模拟器上运行的应用程序。该应用程序只是因EXC_BAD_ACCESS错误而崩溃。在“int start = [youtubeStart intValue];”之前,youtubeStart在调试器中显示为“超出范围”这就是它崩溃的原因。当它工作正常时,youtubeStart不在范围之外。编辑2: stacktrace总是丢失。 我刚刚得到这个在调试器控制台:
Program received signal: “EXC_BAD_ACCESS”.
这在调试程序用红色箭头:
0x0134d0b0 <+0036> cmp ecx,DWORD PTR [eax]
如何在世界上可以可变走出去的范围在运行时根据用户输入? –
是的,你说“超出范围”是什么意思?这是从网络服务器返回? – trojanfoe
我从x-code在ipad模拟器上运行应用程序。该应用程序只是因EXC_BAD_ACCESS错误而崩溃。在“int start = [youtubeStart intValue];”之前,youtubeStart在调试器中显示为“超出范围”这就是它崩溃的原因。当它工作正常时,youtubeStart不在范围之外。 –