2011-09-18 58 views
0

好了,我已經被告知這是一個可怕的想法耽誤我的代碼NSString的值更改後 - (ID)初始

-(id)init 

一部分,但不幸的是它是字符串之前NSLogging NULL值有時間註冊變更。

這裏是我的ID初始化

- (id)init { 
if (self = [super init]) { 
    CFStringRef aCFString = (CFStringRef)[appDelegate baseURL]; 
    CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), aCFString, NULL, NULL); 
    pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL); 
    NSLog(@"xSheetMusicViewController - %@",appDelegate.baseURL); 
    CFRelease(pdfURL); 
} 
return self; 

}

,這裏是控制檯輸出代碼:

2011-09-18 09:52:22.275 SheetMuse[57499:b603] value - (null) 
failed to find PDF header: `%PDF' not found. 
2011-09-18 09:52:24.575 SheetMuse[57499:b603] xSheetMusicViewController - (null) 
2011-09-18 09:52:24.581 SheetMuse[57499:b603] Application tried to push a nil view controller on target <UINavigationController: 0x4e5a910>. 
2011-09-18 09:52:24.624 SheetMuse[57499:b603] value - mussette.pdf 
2011-09-18 09:52:24.627 SheetMuse[57499:b603] Application tried to push a nil view controller on target <UINavigationController: 0x4cc1ba0>. 
2011-09-18 09:52:24.628 SheetMuse[57499:b603] value - mussette.pdf 

原來的NULL值是由應用程序啓動的時候它應該是空(畢竟,爲什麼我會在啓動時需要該字符串?),但它提到它「未能找到PDF頭」,這對我來說是非常新的。那麼xSheetMusicViewController會嘗試獲取字符串值,但它在啓動時仍然爲空。 (ID),init方法或找一個更快的方法來更新初始化前的字符串的值 - 然後將值從

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

方法,這意味着,不知何故,我要麼不得不推遲更新。

任何人都可以幫忙嗎?

+0

爲什麼又要問同樣的問題?在您的上一個問題中存在一個適合您問題的答案:http://stackoverflow.com/questions/7459339/delaying-an-idinit-instance-is-it-possible – thomas

+0

它不適合。 Davyd爵士認爲我使用的是服務器。雖然我喜歡插入一個異步調度,並將其作爲正確的下雨,但我不能。所有文件都是本地的。 – CodaFi

回答

1

將您的設置代碼從init中移出並放入可以稍後調用的單獨方法中。

+0

輝煌,但哪種方法?我試着在-awakeFrom Nib方法中調用它,它只提供了一個令人討厭的EXC_BAD_ACCESS,(部分原因是我沒有一個筆尖......),然後我把它放在viewDidLoad中,它只帶來了增加了16個關於對象未被聲明的錯誤。我應該創建一個私有方法來初始化,還是有一個API? – CodaFi

+0

這個類在哪裏被實例化?你可以在那裏加載pfd,然後調用該類的設置方法?或者加載pfd,然後在init方法中傳入pfd,或者在初始化後通過實例化類來訪問屬性? – zaph

+0

我的應用程序流程與此MainView(tableView) - > SheetMusicView(使用pdf)非常相似。我無法在主視圖中加載PDF,因爲所有繁重的工作都是使用Leaves項目渲染器完成的,並且只有SheetMusicView正在導入和解析PDF。 – CodaFi