Re: List of Indexed Accessor Names for NSMutableArray
Re: List of Indexed Accessor Names for NSMutableArray
- Subject: Re: List of Indexed Accessor Names for NSMutableArray
- From: Markus Spoettl <email@hidden>
- Date: Sat, 28 Jun 2008 16:38:01 -0700
On Jun 28, 2008, at 4:06 PM, Clark Cox wrote:
They're listed in the NSKeyValueCoding.h header, but it seems that
they aren't included in the equivalent documentation
(<http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/Reference/Reference.html#//apple_ref/occ/instm/NSObject/mutableArrayValueForKey:
>).
That's it! This is what the comment for NSMutableArray says. In the
first paragraph notice that -insert<Key>:atIndexes: and -
remove<key>AtIndexes: is not in the documentation.
Thanks Clark!
Regards
Markus
From NSKeyValueCoding.h:
1. Searches the class of the receiver for methods whose names
match the patterns -insertObject:in<Key>AtIndex: and -
removeObjectFrom<Key>AtIndex: (corresponding to the two most primitive
methods defined by the NSMutableArray class), and (introduced in Mac
OS 10.4) also -insert<Key>:atIndexes: and -remove<Key>AtIndexes:
(corresponding to -[NSMutableArray insertObjects:atIndexes:] and -
[NSMutableArray removeObjectsAtIndexes:). If at least one insertion
method and at least one removal method are found each NSMutableArray
message sent to the collection proxy object will result in some
combination of -insertObject:in<Key>AtIndex:, -
removeObjectFrom<Key>AtIndex:, -insert<Key>:atIndexes:, and -
remove<Key>AtIndexes: messages being sent to the original receiver of -
mutableArrayValueForKey:. If the class of the receiver also implements
an optional method whose name matches the pattern -
replaceObjectIn<Key>AtIndex:withObject: or (introduced in Mac OS 10.4)
-replace<Key>AtIndexes:with<Key>: that method will be used when
appropriate for best performance.
2. Otherwise (no set of array mutation methods is found),
searches the class of the receiver for an accessor method whose name
matches the pattern -set<Key>:. If such a method is found each
NSMutableArray message sent to the collection proxy object will result
in a -set<Key>: message being sent to the original receiver of -
mutableArrayValueForKey:.
3. Otherwise (no set of array mutation methods or simple accessor
method is found), if the receiver's class'
+accessInstanceVariablesDirectly method returns YES, searches the
class of the receiver for an instance variable whose name matches the
pattern _<key> or <key>, in that order. If such an instance variable
is found, each NSMutableArray message sent to the collection proxy
object will be forwarded to the instance variable's value, which
therefore must typically be an instance of NSMutableArray or a
subclass of NSMutableArray.
4. Otherwise (no set of array mutation methods, simple accessor
method, or instance variable is found), returns a mutable collection
proxy object anyway. Each NSMutableArray message sent to the
collection proxy object will result in a -setValue:forUndefinedKey:
message being sent to the original receiver of -
mutableArrayValueForKey:. The default implementation of -
setValue:forUndefinedKey: raises an NSUndefinedKeyException, but you
can override it in your application.
--
__________________________________________
Markus Spoettl
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden