If you cross out the __strong message in the error message, it will clear what happens:
Comparison of distinct pointer types (NSString ** and NSString *)
&cashBalanceKeyPath is a pointer to an NSString or NSString** object, while the context is passed to NSString* or a regular NSString object (which is not the case).
So, to fix the problem, change the cast (NSString * const *) , apparently, const should calm the ARC.
source share