[MacRuby-devel] [MacRuby] #112: NSNumber should behave consistently regardless of how it is accessed
MacRuby
ruby-noreply at macosforge.org
Thu Aug 28 05:54:06 PDT 2008
#112: NSNumber should behave consistently regardless of how it is accessed
-------------------------------------+--------------------------------------
Reporter: jordan.breeding at mac.com | Owner: lsansonetti at apple.com
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
-------------------------------------+--------------------------------------
Currently if an NSNumber is stored in something (like an NSDictionary) it
behaves differently depending on how you access it. Accessing it through
Cocoa methods gets you a raw NSCFNumber which doesn't work with ruby
methods, accessing it through [] gets you a ruby object that works.
{{{
6 jordan at thetourist ~/Desktop/Scripts > macirb
>> framework("Cocoa")
=> true
>> myDict = NSMutableDictionary.dictionary
=> {}
>> NSNumber.numberWithInt(100)
=> #<NSCFNumber:0x1020fc0>
>> myDict.setObject(100, forKey: "testNum1")
=> nil
>> myDict.setObject(NSNumber.numberWithInt(100), forKey: "testNum2")
=> nil
>> myDict.objectForKey("testNum1")
=> 100
>> myDict.objectForKey("testNum2")
=> #<NSCFNumber:0x10aaca0>
>> myDict.objectForKey("testNum1").to_f
=> 100.0
>> myDict.objectForKey("testNum2").to_f
NoMethodError: undefined method `to_f' for #<NSCFNumber:0x10aaca0>
from (irb):9
from /usr/local/bin/macirb:12:in `<main>'
>> myDict.objectForKey("testNum1") / 50
=> 2
>> myDict.objectForKey("testNum2") / 50
NoMethodError: undefined method `/' for #<NSCFNumber:0x10aaca0>
from (irb):11
from /usr/local/bin/macirb:12:in `<main>'
>> myDict["testNum1"].to_f
=> 100.0
>> myDict["testNum2"].to_f
=> 100.0
>> myDict["testNum1"] / 50
=> 2
>> myDict["testNum2"] / 50
=> 2
>>
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/112>
MacRuby <http://macruby.org/>
More information about the MacRuby-devel
mailing list