我试图评估此功能并显示
此错误
TypeError - 没有将Fixnum隐式转换为String
if let nsvigationVC = self.window?.rootViewController as? UINavigationController {
if yourVC = nsvigationVC.visibleViewController {
//Add the code here to present signupviewcontroller as form sheet
let sb = UIStoryboard(name: “Main”, bundle: nil) //get signupviewcontroller from storyboard
let signupVC = sb.instantiateViewControllerWithIdentifier("signupviewcontroller") as! signupviewcontroller
signupVC.modalPresentationStyle = UIModalPresentationStyle.FormSheet
signupVC.preferredContentSize = CGSize(width: 365, height: 500) // set content size as per your requirement
yourVC.presentViewController(signupVC, animated: true, completion: nil)
}
}
我如何解决
答案 0 :(得分:3)
此代码非常非常风险,我无法在一开始就看到这样做的原因。删除eval
并获得这个非常普通的代码:
File.open('nagai.txt', 'a+') do |f|
f.puts parts[params[:salutation]]
end
错误来自于在构造代码eval
的过程中尝试将Fixnum / Integer连接到String。此代码无效并产生相同的错误:
"1" + 1
Ruby不像其他语言,如JavaScript,PHP或Perl,它们可以任意将整数转换为字符串,反之亦然。两者之间存在严格的分离,必须使用.to_s
或.to_i
等内容指定任何转化。
固定版本应该是等效的。如果您需要将其推迟到稍后的某个时间点,您可以编写一个方法:
def write_nagai(params)
File.open('nagai.txt', 'a+') do |f|
f.puts parts[params[:salutation]]
end
end