使用 localizable.string 自定义解析错误代码?
custom Parse error code with localizable.string?
我正在尝试为解析的 "invalid login parameters (Code: 101, Version: 1.8.1)" 创建自定义字符串。以下是在自定义警报视图中显示此错误代码的代码:
PFUser.logInWithUsernameInBackground(userName, password: passWord) {
(user, error: NSError?) -> Void in
if user != nil || error == nil {
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("loginSuccess", sender: self)
}
} else {
dispatch_async(dispatch_get_main_queue()) {
self.activityIND.stopAnimating()
let errorView:String = error!.userInfo!["error"] as! String
self.failedMessage(errorView)
}
}
}
}
func failedMessage(theMessage: String){
let myAlert = SCLAlertView().showError("Woah There", subTitle: theMessage, closeButtonTitle: "Got It")
myAlert.alertview.contentView.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)
myAlert.alertview.circleBG.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)
myAlert.alertview.labelTitle.textColor = UIColor.whiteColor()
myAlert.alertview.contentView.layer.borderColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0).CGColor
myAlert.alertview.viewText.textColor = UIColor.whiteColor()
myAlert.alertview.viewText.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)
}
现在我创建了一个 localizable.strings 文件并添加了以下字符串
"error" = "something isn't right, check the username and password fields"
现在我几乎可以肯定这是不正确的格式,因为我以前从未使用过可本地化的字符串,但您明白了。我试图用我的自定义消息伪装那个普通的 "invalid login parameters" 消息。使用我的 localizable.strings 文件,我该怎么做?
假设您的所有其他本地化配置 have been set up—您需要执行如下操作:
PFUser.logInWithUsernameInBackground(userName, password: passWord) {
(user, error: NSError?) -> Void in
if user != nil || error == nil {
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("loginSuccess", sender: self)
}
} else {
dispatch_async(dispatch_get_main_queue()) {
self.activityIND.stopAnimating()
if let message = error?.userInfo?["error"] as? String
where message = "invalid login parameters" {
let localizedMessage = NSLocalizedString(message, comment: "")
println(localizedMessage)
self.failedMessage(localizedMessage)
}
}
}
}
}
然后只需将 Localizable.strings
中的行更改为:
"invalid login parameters" = "something isn't right, check the username and password fields";
… 注意它使用特定的 Parse 错误消息(作为键)来查找您的 localized 版本——并且不要忘记末尾的分号。
警告:这不是我推荐的,因为 Parse 提供的错误消息比说错误代码更容易更改联系。最好检查一下,减少不必要的维护空间。
我正在尝试为解析的 "invalid login parameters (Code: 101, Version: 1.8.1)" 创建自定义字符串。以下是在自定义警报视图中显示此错误代码的代码:
PFUser.logInWithUsernameInBackground(userName, password: passWord) {
(user, error: NSError?) -> Void in
if user != nil || error == nil {
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("loginSuccess", sender: self)
}
} else {
dispatch_async(dispatch_get_main_queue()) {
self.activityIND.stopAnimating()
let errorView:String = error!.userInfo!["error"] as! String
self.failedMessage(errorView)
}
}
}
}
func failedMessage(theMessage: String){
let myAlert = SCLAlertView().showError("Woah There", subTitle: theMessage, closeButtonTitle: "Got It")
myAlert.alertview.contentView.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)
myAlert.alertview.circleBG.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)
myAlert.alertview.labelTitle.textColor = UIColor.whiteColor()
myAlert.alertview.contentView.layer.borderColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0).CGColor
myAlert.alertview.viewText.textColor = UIColor.whiteColor()
myAlert.alertview.viewText.backgroundColor = UIColor(red:1.0, green:0.18, blue:0.18, alpha:1.0)
}
现在我创建了一个 localizable.strings 文件并添加了以下字符串
"error" = "something isn't right, check the username and password fields"
现在我几乎可以肯定这是不正确的格式,因为我以前从未使用过可本地化的字符串,但您明白了。我试图用我的自定义消息伪装那个普通的 "invalid login parameters" 消息。使用我的 localizable.strings 文件,我该怎么做?
假设您的所有其他本地化配置 have been set up—您需要执行如下操作:
PFUser.logInWithUsernameInBackground(userName, password: passWord) {
(user, error: NSError?) -> Void in
if user != nil || error == nil {
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("loginSuccess", sender: self)
}
} else {
dispatch_async(dispatch_get_main_queue()) {
self.activityIND.stopAnimating()
if let message = error?.userInfo?["error"] as? String
where message = "invalid login parameters" {
let localizedMessage = NSLocalizedString(message, comment: "")
println(localizedMessage)
self.failedMessage(localizedMessage)
}
}
}
}
}
然后只需将 Localizable.strings
中的行更改为:
"invalid login parameters" = "something isn't right, check the username and password fields";
… 注意它使用特定的 Parse 错误消息(作为键)来查找您的 localized 版本——并且不要忘记末尾的分号。
警告:这不是我推荐的,因为 Parse 提供的错误消息比说错误代码更容易更改联系。最好检查一下,减少不必要的维护空间。