2011-04-04 68 views
0

如何使用initwithnib語法聲明nib文件它顯示'Warning: passing argument 1 of initwithNibName:bundle: from Incompatible pointer type'如何聲明Nib文件?

我的發言是:提前

SpanishViewController *spanishview = [[SpanishViewController alloc] 
    initWithNibName:"LocalizeMeViewController.xib (es)" 
      bundle:[NSBundle mainBundle]]; 

感謝........

+0

其字符串類型@ 「yourNibName」 – 2011-04-04 10:49:33

+0

使用兼容的指針類型。沒有顯示一些代碼,這是我可以告訴的。 – 2011-04-04 10:49:43

+0

使用此initWithNibName:@「LocalizeMeViewController」捆綁包:如果這會觸發警告,那麼將不會有 – 2011-04-04 10:56:08

回答

0

你可能不會把你的廈門國際銀行的確切名稱。我不會推薦將括號放在筆尖名稱上。正如亞當所說,你需要在它之前加一個'@',因爲它仍然是一個NSString,它作爲一個參數。所以這個名字應該是一個NSString。 @ 「myNibName」

+0

。但不幸的是它沒有。 – 2011-04-04 10:50:46

+0

不,「不兼容的指針類型」意味着他可能寫道:initWithNibName:「name」bundle:nil ...即他忘記了「@」符號。這將它變成一個不同的類型(「指針類型」),以期望(字符串指針)。 – Adam 2011-04-04 10:56:38

1

,除非你真的知道你的自定義文件名NIB做什麼,你應該加載發鈔銀行這樣的:

self.myViewController = [[[MyViewController alloc] initWithNibName:nil bundle:nil] autorelease]; 

或:

MyViewController *myViewController = [[MyViewController alloc] initWithNibName:nil bundle:nil]; 

蘋果容易未來會添加一些新功能,暗示依靠這個「我不在乎,請自動選擇NIB」功能。

PS:「不兼容的指針類型」表示您試圖將它傳遞給錯誤的「類型」的變量。你可能寫道:

[... initWithNibName:"name" bundle:nil] 

......即忘記了「@」符號。這將它變成一個不同的類型/指針類型,以滿足所期望的(特定類型的字符串指針)。


編輯:現在你已經添加了你的實際代碼,我懷疑你是在做本地化的錯誤方式。檢查Apple文檔,但是從我的頭頂開始,您提供了與相同的名稱的相同NIB的多個副本,但存儲在不同的子目錄中,每種語言一個。

0

只要做到:

SpanishViewController *spanishview = [[SpanishViewController alloc] 
initWithNibName:@"LocalizeMeViewController" 
     bundle:nil]; 
+0

不,那永遠不會工作。在Xcode中嘗試它 - 你傳遞的是一個不正確的類型(obj-C中的字符串需要手工構建,通過適當的指針參考傳遞,除非你使用特殊的魔法@語法:) – Adam 2011-04-04 23:38:14

+0

錯誤錯誤,抱歉;) – nacho4d 2011-04-05 00:29:30