I wonder how memory management must be done for method parameters that are used to pass values into the method and (optionally) return updated values from the method.
For example, the -validate<Key>:error:
method in KVC has a (id *)ioValue
parameter that can be updated by the method. You can return an autoreleased object but what should you do with the input object when updating? Are there any conventions for this case?