futuretap/InAppSettingsKit

v3 validation changes cause unvalidated partial fields updates to be sent to listeners

696GrocuttT opened this issue · 2 comments

It looks like the changes to the way field validation is done in v3 removed the validation specific behaviour in the IASKAppSettingsViewController.textChanged() function. As a result any code listening to kIASKAppSettingChanged notifications receives unvalidated intermediate values. This can cause downstream code to crash (eg if it was expecting a string that could be parsed as an integer)

Since its valid to have intermediate values of a text field that don't pass the validation (eg an email address before the user has typed the @ symbol), there needs to be a way of preventing these change notifications being sent for intermediate values.

This should be fixed in 3.1.4. We now skip saving intermediate values if the delegate implements the field validation callback. However, for list groups we have to save these intermediate values (albeit to a transient in-memory store) if the child pane validation callback is implemented.

Great, thanks for fixing this.

Tom