In NSManagedObject+MagicalAggregation the method MR_aggregateOperation has the following lines:
NSFetchRequest *request = [self MR_requestAllWithPredicate:predicate inContext:context];
[request setPropertiesToFetch:properties];
[request setResultType:NSDictionaryResultType];
NSDictionary *resultsDictionary = [self MR_executeFetchRequestAndReturnFirstObject:request inContext:context];
This results in a compiler warning
Incompatible pointer types initializing 'NSDictionary *' with an expression of type 'NSManagedObject * _Nullable'
because the compiler does not know about the set result type.
I think the call here needs an explicit type cast, like so
NSDictionary *resultsDictionary = (NSDictionary *)[self MR_executeFetchRequestAndReturnFirstObject:request inContext:context];