On Jul 25, 2015, at 11:03 AM, Quincey Morris <email@hidden> wrote:
On Jul 25, 2015, at 10:37 , Carl Hoefs < email@hidden> wrote:
Effectively, what the compiler does with a #define _is_ a global replace.
It’s not, though. Not in general.
1. It’s not global. A #define can be undefined and redefined.
2. It’s not unique. IIRC, the appearance of the define symbol inside its own definition is *not* subject to macro expansion.
3. Macro expansion happens as a separate lexical pass over the input. For example, if source lines are not compiled as a result of a define/if then it’s not clear what replacement might be suitable at refactoring. Or again, token pasting may simply produce incorrect results if macro names are arbitrarily changed around them.
Okay... old thread, but same problem with Xcode 7.1 (ObjC, iOS 9.1):
When I attempt to refactor an IBOutlet's name, "e.g., recordButton", Xcode tells me:
"The selection is not a type that can be renamed. Make a different selection and try, try again."
@property(nonatomic, assign) IBOutlet UIButton *recordButton;
Xcode doesn't know how to do the reconnection? -Carl
|