Iphone 如何声明Nib文件?
如何使用initwithnib语法声明nib文件,它会显示Iphone 如何声明Nib文件?,iphone,Iphone,如何使用initwithnib语法声明nib文件,它会显示“警告:传递initwithNibName:bundle的参数1:来自不兼容的指针类型” 我的声明是: SpanishViewController *spanishview = [[SpanishViewController alloc] initWithNibName:"LocalizeMeViewController.xib (es)" bundle:[NSBundle mainBundle]];
“警告:传递initwithNibName:bundle的参数1:来自不兼容的指针类型”
我的声明是:
SpanishViewController *spanishview = [[SpanishViewController alloc]
initWithNibName:"LocalizeMeViewController.xib (es)"
bundle:[NSBundle mainBundle]];
提前感谢……。您可能没有填写您的xib的确切名称。我不建议在Nib名称上加括号。正如Adam所说,你需要在它前面加一个“@”,因为它仍然是一个NSString,它作为一个参数得到。因此名称应该是一个NSString@“myNibName”除非您真正了解如何使用自定义NIB文件名,否则您应该像这样加载NIB:
self.myViewController = [[[MyViewController alloc] initWithNibName:nil bundle:nil] autorelease];
或:
苹果可能会在未来添加一些新功能,这取决于“我不在乎,请自动选择笔尖”功能
PS:“不兼容指针类型”表示您试图向其传递错误“类型”的变量。你可能写过:
[... initWithNibName:"name" bundle:nil]
。。。i、 e.忘记了“@”符号。这将它转换为与预期不同的类型/指针类型(一种特殊的字符串指针)
编辑:现在你已经添加了你的实际代码,我怀疑你做本地化的方式是错误的。查看Apple文档,但在我看来,您提供了相同NIB的多个副本,名称相同,但存储在不同的子目录中,每种语言一个。只需执行以下操作:
SpanishViewController *spanishview = [[SpanishViewController alloc]
initWithNibName:@"LocalizeMeViewController"
bundle:nil];
其字符串类型@“yourNibName”使用兼容的指针类型。在不显示代码的情况下,我只能告诉您这一点。使用initWithNibName:@“LocalizeMeViewController”bundle:nil如果这会触发警告,那就太好了。但不幸的是,它不是。不,“不兼容指针类型”意味着他可能写了:initWithNibName:“name”bundle:nil。。。i、 他忘记了“@”符号。这将把它转换为与预期的类型(字符串指针)不同的类型(“指针类型”)。不,这永远不会起作用。在Xcode中尝试-您传递的类型不正确(obj-C中的字符串需要手动生成,通过适当的指针引用传递…除非您使用特殊的神奇@语法:)
SpanishViewController *spanishview = [[SpanishViewController alloc]
initWithNibName:@"LocalizeMeViewController"
bundle:nil];