It looks like STV uses this method:
- (id)valueForSensibleKeyPath:(NSString *)keyPath;
in NSObject(SensibleCocoa) to retrieve the value of bound properties. The method supports an extended key path syntax that allows it to traverse arrays. However, the extended syntax only works when reading the value of a property, not when writing it. For instance:
SCSelectionCell *myCell = [SCSelectionCell cellWithText:@"My cell" boundObject:boundObject selectionStringPropertyName:@"myproperty.myarray" items:@[@"A", @"B", @"C", @"D", @"E"]];
When the UITableView is displayed, myCell is correctly bound to the property value. However, when I modify the value of the cell, the app throws an exception saying that the key is not KVC-compliant.
Why doesn't STV also use the extended key path syntax when setting property values?