Макс имеет правильный синтаксис приведения, но для безопасности вы захотите выполнить какую-то проверку экземпляра во время выполнения, поскольку во время компиляции в Objective-C невозможно гарантировать, что тип объекта в массив или словарь - это то, что вы ожидаете:
NSObject *obj = [item objectForKey:@"link"];
if ([obj isKindOfClass:[NSString class]]) {
NSString *stringValue = (NSString *)obj;
// Do something with the NSString
} else {
// You can alternatively raise an NSException here.
NSLog(@"Serious error, we expected %@ to be an NSString!", obj);
}