[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