2011-10-24 118 views
1

我有10個HTML存儲在數組中...我想通過按鈕單擊顯示每個HTML ...但是我的應用程序崩潰了..這裏是代碼..Html加載不正確

int xpos=10,ypos=10; 

for (int i=0; i<[array count]; i++) { 

    UIButton *but=[UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [but setTag:i]; 
    but.backgroundColor=[UIColor redColor]; 
    but.frame=CGRectMake(xpos, ypos, 50, 50); 
    xpos+=90; 

    [self.view addSubview:but]; 
    [but addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchDown]; 
} 


- (void)buttonClicked:(UIButton *)sender { 

    NSString *str=[array objectAtIndex:sender.tag]; 
    [webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:str ofType:@"html"]isDirectory:NO]]]; 
    [webview release]; 
} 

如何克服這個問題?這裏是崩潰報告

24/10/11下午4時56分08秒加載HTML [4655] *終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因是:「* - [NSURL initFileURLWithPath:isDirectory:] :無字符串參數'

+0

發佈錯誤日誌語句可能會有幫助。 – sElanthiraiyan

+0

日誌會有所幫助。但爲什麼你在buttonClicked的末尾釋放webview:?這可能是問題的原因(引用一個解除分配的對象) – viggio24

+0

我刪除了,仍然存在相同的pblm – Icoder

回答

1

您在初始化webview的位置?

請刪除[webview release];並立即嘗試。您的價值STR發送零

+0

我認爲tat可能不是pblm ......只有當我動態加載html時才存在此pblm(即如果我通過標記從數組中調用) – Icoder

+0

否則,請發佈錯誤日誌.. – Ilanchezhian

0
24/10/11 4:56:08 PM Loading HTML[4655] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter' 

你的錯誤日誌狀態。

請檢查str的值。這應該解決問題。可能是你拼錯了文件的名字。


更新評論

嘗試更換有你的文件名,而不是得到它在運行時的。

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"yourHtmlFileNameGoesHere" ofType:@"html"]isDirectory:NO]]]; 

如果上述工作,那麼你應該檢查數組。

+0

我跟蹤了str的值.....我可以根據按鈕的標記從數組中獲取數據。 – Icoder

+0

更新了我的答案。 – sElanthiraiyan

+0

只有當我動態加載html時(即,如果我通過標記從數組調用)調用此pblm – Icoder

0

看起來像[[NSBundle mainBundle] pathForResource:str ofType:@"html"]結果爲零 - 這意味着該文件現在可以在您的主包中找到。確保具有該名稱和擴展名的文件存在。請記住,文件名是區分大小寫的。