Похоже, вы путаете ссылки на массивы и словари. Просто используйте ключевой путь (разделенные точками имена элементов) для ссылки на вложенные элементы или свойства объекта, концептуально что-то вроде этого:
[CPPredicate predicateWithFormat:@"%K like[c] %@", @"extAttributes.myNestedElementName", val];
Опять же, я не так хорошо знаком с капучино, поэтому я не уверен, что они сделали здесь что-то немного другое, но именно так это работает в Touch Cocoa и Cocoa.
EDIT
Для динамического вычисления ключа все, что вам нужно сделать, это составить строку пути к ключу:
var keyPath = [CPString stringWithFormat:@"%@.%@", @"extAttributes", key];
Теперь вы можете создать предикат следующим образом:
[CPPredicate predicateWithFormat:@"%K like[c] %@", keyPath, val];
EDIT
Эквивалентный код в Cocoa / Cocoa touch будет:
NSString *keyPath = [NSString stringWithFormat:@"%@.%@", @"extAttributes", key];
[NSPredicate predicateWithFormat:@"%K like[c] %@", keyPath, val];