2011-09-15 26 views
0

我還是比較新的,因爲這是我的第一個項目。但是我完全相信堆棧溢出社區,因爲您之前都曾幫助過我。NSlogging和NSString難題

我對你們所有人都有一個相當有趣的難題。我調用標準:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

在我的tableview將它推視圖控制器,並更新字符串的值(下面方法)(以串的變化是由不同的方法NSLogged):

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
appDelegate.baseURL = nil; 
musicInteractionController = [[xSheetMusicViewController alloc]init]; 
if (indexPath.row == 0 && indexPath.section == 0) { 
    appDelegate.baseURL = @"mussette.pdf"; 
    [self.navigationController pushViewController:musicInteractionController animated:YES]; 
} 
else if (indexPath.row == 1 && indexPath.section == 0) { 
    appDelegate.baseURL = @"Importing PDF's.pdf"; 
    [self.navigationController pushViewController:musicInteractionController animated:YES]; 

} 
else if (indexPath.row == 2 && indexPath.section == 0) { 
    appDelegate.baseURL = @"Example.pdf"; 
    [self.navigationController pushViewController:musicInteractionController animated:YES]; 

} 
else if (indexPath.section == 1) { 
    appDelegate.baseURL = [[ivContentsList objectAtIndex:indexPath.row]lastPathComponent]; 
    [self.navigationController pushViewController:musicInteractionController animated:YES]; 

} 
[musicInteractionController release]; musicInteractionController = nil; 
appDelegate.baseURL = nil; 

}

我的代碼沒有錯誤,警告或內存泄漏。而且它由更新視圖以顯示當前PDF的新視圖控制器讀取的字符串更改。它可以正常工作,但不斷顯示相同的PDF,儘管NSLog值發生了變化。如果有幫助,我使用iOS模擬器,而不是真正的設備。

這是推後的第一個單元格,然後第二個(忽略無視圖控制器日誌,我認爲這是一個bug的示例NSLog的。此外,下來日誌是從第二個視圖中的私有方法,所以它可以也可以忽略,獎勵那些誰可以解決CGContextClipToRect:無效的情況下爲0x0警告):

2011-09-15 16:24:23.731 SheetMuse[43068:b603] value - (null) 
Sep 15 16:24:27-MacBook SheetMuse[43068] <Error>: CGContextClipToRect: invalid context 0x0 
Sep 15 16:24:27-MacBook SheetMuse[43068] <Error>: CGContextGetClipBoundingBox: invalid context 0x0 
Sep 15 16:24:27-MacBook SheetMuse[43068] <Error>: CGContextConcatCTM: invalid context 0x0 
Sep 15 16:24:27-MacBook SheetMuse[43068] <Error>: CGBitmapContextCreateImage: invalid context 0x0 
2011-09-15 16:24:27.050 SheetMuse[43068:b603] Application tried to push a nil view controller on target <UINavigationController: 0x4c5e220>. 
2011-09-15 16:24:27.069 SheetMuse[43068:b603] value - mussette.pdf 
2011-09-15 16:24:27.072 SheetMuse[43068:b603] Application tried to push a nil view controller on target <UINavigationController: 0x4e74620>. 
2011-09-15 16:24:27.097 SheetMuse[43068:b603] value - mussette.pdf 
2011-09-15 16:24:33.944 SheetMuse[43068:b603] Down 
Sep 15 16:24:36 MacBook-SheetMuse[43068] <Error>: CGContextClipToRect: invalid context 0x0 
Sep 15 16:24:36 MacBook-SheetMuse[43068] <Error>: CGContextGetClipBoundingBox: invalid context 0x0 
Sep 15 16:24:36 MacBook-SheetMuse[43068] <Error>: CGContextConcatCTM: invalid context 0x0 
Sep 15 16:24:36 MacBook-SheetMuse[43068] <Error>: CGBitmapContextCreateImage: invalid context 0x0 
2011-09-15 16:24:36.587 SheetMuse[43068:b603] Application tried to push a nil view controller on target <UINavigationController: 0x4c54bf0>. 
2011-09-15 16:24:36.588 SheetMuse[43068:b603] value - Importing PDF's.pdf 
2011-09-15 16:24:36.590 SheetMuse[43068:b603] Application tried to push a nil view controller on target <UINavigationController: 0x4c50790>. 
2011-09-15 16:24:36.591 SheetMuse[43068:b603] value - Importing PDF's.pdf 

在此先感謝。

+0

在xSheetMusicViewController如果所選擇的小區,有什麼方法它讀取appDelegate.baseURL並加載PDF?顯示該方法。 – Anna

+0

對不起,遲到的迴應。 appDelegate.baseURL作爲來自NSURL的CFURLRef在下一個視圖的 - (id)init方法中加載。 – CodaFi

+0

在上面的代碼中,baseURL被設置_after_ init被調用,所以當init運行時,它將讀取以前的值。 – Anna

回答

2

下面是一個示例的NSLog推動第一小區後,則第二 (忽略零視圖控制器日誌,我認爲這是一個錯誤。此外, 向下日誌是從一個私有方法在第二視圖,所以它也 被忽略,獎勵那些誰可以解決CGContextClipToRect:無效的情況下爲0x0警告)

我知道它很容易認爲,這些都沒有關係,但重要的是要請記住,錯誤就像雪球一樣 - 當它們開始滾動時,它們累積更多的積雪。

musicInteractionController = [[xSheetMusicViewController alloc]init]; 

該日誌似乎表明您的musicInteractionController爲零。我沒有看到xSheetMusicViewController的init代碼(順便說一句,我建議使用Apple的類和變量命名建議:類以大寫字母開頭,變量以小寫字母開頭)我不能說爲什麼,但UIViewController的子類可能應該使用 - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle init。

我的猜測是,如果你解決了無視圖控制器,你將解決其他的錯誤。

更新

From Apple's docs:

這是這個類的指定初始化。

您指定的筆尖文件不會立即加載。它在第一次訪問視圖控制器的視圖時加載了 。如果你想 執行筆尖文件被加載後,額外的初始化, 覆蓋viewDidLoad方法和執行任務那裏。

如果爲nibName參數指定爲零,則必須重寫 的方法的loadView有創建的看法,或者你必須提供你的包,其名稱(不帶擴展筆尖)一個 筆尖文件 名稱匹配你的視圖控制器類。 (在後一種情況下, 類的名稱將成爲存儲在nibName屬性的名稱。)如果 你沒有這些,視圖控制器將無法加載其 視圖。

因此,一切都需要在類的loadView方法中設置。你能告訴我們你是如何實現該方法的?

+0

我沒有廈門國際銀行與同時被推來看,相反,我打電話: - (id)init。而musicInteractionController是實際視圖控制器的子類,所以它是正確的。就像我之前說過的,該視圖完美地加載了PDF,但它只加載了一個PDF。這是一個NSString問題,而不是視圖控制器問題。 – CodaFi

1

嘗試不同的調用索引,因爲我之前已經與一些調試我發現,指數的變化,你通過基於活動視圖,而不是實際的表的表滾動了這個問題。

嘗試調用這個索引:

int someIndexVar = [indexPath indexAtPosition: [indexPath length] - 1]; 

,並嘗試

if (someIndexVar == 0 && someIndexVar.section == 0) { 

編輯:

: 如果每個語句即添加

return cell; 

每一個項目以後的各

if (this){ 
    code 
    return cell; 
} else if (this){ 
    code 
    return cell; 
} else { 
    code 
    return cell; 
} 

大多數人認爲這種細胞並不需要每次都被退回,但它必須從它的if語句,它只能返回固定的問題,我

+0

感謝您的提示,它具有和以前一樣的行爲。我點擊單元格,它NSLogs適當的價值,然後推動每一行相同的PDF。 – CodaFi

+0

我更新我的回答什麼應該工作 – Matt

+0

馬特,我已經回到小區,多次被評爲您發佈。安娜卡列尼娜有正確的想法。閱讀她的評論。 – CodaFi