【发布时间】:2012-02-01 16:14:13
【问题描述】:
我使用的是 iOS 5,XCODE 4.2
在我的登录视图控制器中:
-(IBAction)loginButton:(id)sender{
textClass=[[MainScreenController alloc ] init];
NSLog(@"ShowText called");
textClass.selectedLanguage=currentLanguage;
[self.view addSubview:textClass.view] ;
NSLog(@"txtclaslan=%d",textClass.selectedLanguage);
}
在我的 MainViewController viewDidLoad: 方法中:
mainScreenTitle.text=[self languageSelectedStringForKey:@"screenTitle"];
在languageSelectedStringForKey:
-(NSString*) languageSelectedStringForKey:(NSString*) key{
NSString *path;
if(selectedLanguage==ENGLSIH_LANGUAGE)
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
else if(selectedLanguage==TURKISH_LANGUAGE)
path = [[NSBundle mainBundle] pathForResource:@"tr" ofType:@"lproj"];
else
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str = [languageBundle localizedStringForKey:key value:@"" table:nil];
return str;
}
在此方法languageSelectedStringForKey 中,当我加载 MainViewController 时,我的应用程序崩溃了。我没有收到任何错误,只是突出显示了这一行
NSBundle* languageBundle = [NSBundle bundleWithPath:path]; < Thread 1
这可能是什么问题?
提前致谢
【问题讨论】:
-
查看您的代码,如果语言不是英语而不是土耳其语,则未设置路径。
-
我同意 onnoweb,如果不是英语或土耳其语,则未设置您的“路径”变量,当您尝试打开文件时,应用程序崩溃。
-
好的,我已经添加了它,它现在没有崩溃,但这是国际化没有得到正确实施的一个问题
-
@onnoweb:您应该将您的评论作为答案,因为它可能是正确的。另外请注意,由于 path 是一个局部变量,它是一个垃圾指针(而不是一个 nil 指针)。
标签: iphone objective-c ios cocoa-touch internationalization