作者dododavid006 (朔雪)
看板Ruby
标题[问题] 神隐的method(已解决)
时间Thu Oct 31 20:53:46 2013
第一次发文还请多多指教
如果我在block外呼叫某个函式是正常的
可是当进到block中(for each ... )这个函式就神隐了
如果我在block 中把method print出来是存在的
可是呼叫就会喷出NoMethodError
也是过用send了
啊对 那个函式是Qt的函式
用qtbinding弄上去的
@ui.chooseCB.addItem("Plaese choose one") # 这里是正常的
@rate.each.each_with_object(@ui.chooseCB) {|x, obj|
obj.addItem("#{x.rate}p #{x.format}", x) # 这里会喷错
}
还有这个写法很蠢我知道 可是我已经试过我想的到的所有方法了
这个是在class中的一部份 如果要完整的我再PO上来
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.101.139
※ 编辑: dododavid006 来自: 140.123.101.139 (10/31 21:03)
1F:→ lTERRAl:你在函式内 放下binding.pry看看 我猜是obj变成nil了 11/01 01:16
2F:→ dododavid006:可以讲详细点吗 11/01 01:36
3F:→ mars90226:1楼的意思是装pry,用binding.pry,会进入类似irb的环境 11/01 12:18
4F:→ mars90226:然後看看obj的值 11/01 12:18
5F:→ mars90226:执行到binding.pry会进入irb,所以可以看当时的obj 11/01 12:19
像Debuger那样的东西吗 等下来试试 谢谢
然後再补充一些东西和我今天试的东西
我是不知道为什麽会这样 不过在喷错的时後是有说那个物件没有这个method
物件确定是我要的 因为这原本是Qt的函式我有说过
所以今天有想过是不是qtbindings出问题就重装过结果还是一样
以下算是重点
然後我又从网页上载了相关的example来跑跑看
是正常的 但它没有像我这样用到block
於是我给它加上了for也去呼叫了同一个函式
更神奇的是还是正常
之後我又试了加上第二个参数 (Qt原本那个函式是有两个参数的 只是第二个有default)
该说终於出现我要的东西了吗 它也喷了一样的错误
所以我在想 可能不是block的问题 而是第二个参数的问题
可是那个参数很重要啊
※ 编辑: dododavid006 来自: 140.123.101.139 (11/01 15:04)
我被忽视了吗 有点难过啊XD
刚好我试出来了
问题还真的是第二个参数
不过因为它一直都是喷NoMethodError所以我一直误会了
好像是因为参数类型不对就这样了
所以 谢谢
※ 编辑: dododavid006 来自: 113.61.208.17 (11/03 08:17)
※ 编辑: dododavid006 来自: 113.61.208.17 (11/03 08:18)