There was a lot of code duplication between the property and ivar editor classes. This fixes that.
- Renamed: FLEXFieldEditorViewController → FLEXVariableEditorViewController
- Renamed: FLEXMutableFieldEditorViewController → FLEXFieldEditorViewController
- Collapsed FLEXPropertyEditorViewController and FLEXIvarEditorViewController into their parent class, FLEXFieldEditorViewController
- Property/ivar editor now takes a FLEXProperty/FLEXIvar
- Property/ivar editor initializer is failable based on editability of property/ivar
- FLEXMethodCallingViewController now takes a FLEXMethod
- Argument input views will now generally allow editing of a nil value
- Add FLEXAlert, a builder-oriented UIAlertController wrapper
- Replace all uses of UIAlertController with FLEXAlert
- Moves some alert methods from FLEXUtility to FLEXAlert
Object properties are strong by default, and primitive ones are assign by default. Verbosity is nice, but in this case it introduces unnecessary cognitive load.
Remove all usage of `strong` and `assign` property attributes
Previously you could only "Set" mutable ivars or properties. This commit adds a "Get" button to the same screen to allow you to view the current value instead. Also works in the user defaults explorer.
It may be worth considering other approaches to this entirely, such as an alert that asks you if you want to get or set the ivar/property before a new screen is even pushed, or maybe a "Get" button as an accessory view on the rows of mutable ivars/properties.
We will now have a generic FLEXArgumentInputView superclass that just shows a title and declares the common interface for setting an initial value for the argument, getting the user’s input, etc.
With FLEXArgumentInputViewFactory, we will be able to pick different FLEXArgumentInputView subclasses depending on the type encoding of the argument. This will allow us to go beyond string-only input to have things like switches for BOOLs, multiple fields for structs, color pickers for UIColors, font pickers, etc.