Global enumerations defined in modules are not available in the class “Inspector Behavior” window.
Enumerations defined in the class “Inspector Behavior” window are not available to the application.
There is no error-checking (or auto-complete) for constants entered in the Inspector. I can enter “#kFoo” in the inspector and the compiler doesn’t tell me that kFoo doesn’t exist, it just treats “#kFoo” as a literal.
Enumerations have to exist independently of the project for the system to work because the e um definition is stored with the property.
Same as #1 but the inverse
That’s a tricky one. I remember talking about this with the other engineers at one point and the question that comes up is “what happens is you want a hash at the front of your string literal?” What you’re proposing would cause errors every time if it wasn’t a constant, whether right then when you typed it or every time you compiled.
IMHO they probably could make that into a Warning, such that if you did this and checked the project, you’d get a warning, but I find that most people ignore warnings until they become errors.
Seems a perfectly reasonable choice. It fits in with the && pattern, as you say. I would be happy to sign on to a feature request for this. The value of spotting bad constants does seem to out weigh any inconvinience.
Right up until you need something that’s not a constant with a hash at the front and then you find that you can’t compile your project.
This is one of those areas that could suddenly cause a users project to stop compiling with a new version of the product if they’d already been using them… and they’re used all over the place on the web so the IDE needs to be able to honor that.