[MacRuby] #1433: Defining valueForUndefinedKey after an NSUnknownKeyException has been raised fails

MacRuby ruby-noreply at macosforge.org
Tue Dec 27 11:30:48 PST 2011


#1433: Defining valueForUndefinedKey after an NSUnknownKeyException has been
raised fails
-----------------------------------+----------------------------------------
 Reporter:  ndh@…                  |       Owner:  lsansonetti@…        
     Type:  defect                 |      Status:  new                  
 Priority:  minor                  |   Milestone:                       
Component:  MacRuby                |    Keywords:                       
-----------------------------------+----------------------------------------
 When you define #valueForUndefinedKey on a class after calling
 #valueForKey on an instance of that class, the new definition is ignored
 for that instance as well as new instances. This is probably a minor issue
 because I doubt that classes are reopened to redefine valueForUndefinedKey
 on a regular basis.

 When I run the following script, I get this output
 $ ruby -v
 MacRuby 0.10 (ruby 1.9.2) [universal-darwin10.0, x86_64]
 $ ruby unknown_value.rb
 NSUnknownKeyException: [<Foo 0x200052ca0> valueForUndefinedKey:]: this
 class is not key value coding-compliant for the key qux.
 /Users/nick/macRubyBook/ch06/value_error.rb:19:in `<main>':
 NSUnknownKeyException: [<Foo 0x200052ca0> valueForUndefinedKey:]: this
 class is not key value coding-compliant for the key qux. (RuntimeError)





 class Foo
   attr_accessor :bar
 end

 foo = Foo.new
 foo.bar = 'baz'

 begin
   foo.valueForKey("qux")
 rescue => e
   puts e
 end

 class Foo
   def valueForUndefinedKey(key)
     p key
   end
 end
 p foo.valueForKey("qux")

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/1433>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list