我正在做一個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不在範圍之外。 –