将字符串转换为整数然后使用RubyMotion添加1

时间:2014-08-21 11:12:44

标签: rubymotion

有人可以告诉我为什么以下代码出错:

def pickerView(pickerView, didSelectRow:row, inComponent:component)
@myLabel.text = "#{row+1}"  
end

def remain
@remainLabel.text = @myLabel.text
end

def left
remain.to_i (+1)
end

我打电话给"左边"方法通过按钮点击,但我得到"无效的基数1"作为一个错误。我尝试了各种不同的配置,包括有和没有括号和有和没有空格。基本上,无论我做什么,我都会得到一个错误,或者只是选择的数字来自选择器,而不添加1。

1 个答案:

答案 0 :(得分:1)

你想:

remain.to_i + 1

方法remain返回一个字符串,即@myLabel.text中的字符串。当你写:

remain.to_i (+1)

Ruby认为您将参数(+1)传递给to_i方法。事实证明,to_i确实采用了一个参数,它是您希望它用来解释字符串的基础(或基数)。

puts "FF".to_i(16)  // prints "255"
puts "101".to_i(2)  // prints "5"

Base 1是无效的base,因此无效的radix消息。默认基数为10,所以

puts "123".to_i(10)  // prints "123"
puts "123".to_i      // prints "123"