如何声明Nib文件?

如何声明Nib文件?

问题描述:

如何使用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

你可能不会把你的厦门国际银行的确切名称。我不会推荐将括号放在笔尖名称上。正如亚当所说,你需要在它之前加一个'@',因为它仍然是一个NSString,它作为一个参数。所以这个名字应该是一个NSString。 @ “myNibName”

+0

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

+0

不,“不兼容的指针类型”意味着他可能写道:initWithNibName:“name”bundle:nil ...即他忘记了“@”符号。这将它变成一个不同的类型(“指针类型”),以期望(字符串指针)。 – Adam 2011-04-04 10:56:38

,除非你真的知道你的自定义文件名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的多个副本,但存储在不同的子目录中,每种语言一个。

只要做到:

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