В вашем конкретном примере вы, вероятно, можете избежать использования [NSString stringWithContentsOfURL: encoding: error]
В общем, пишите по назначению. Если вы собираетесь вызывать его из кода C или заинтересованы в кросс-платформенной совместимости, напишите его на C. Если вы звоните из ObjC или хотите, чтобы ввод / результат легко использовался в инфраструктурах Apple ObjC, напишите его в ObjC.
Обычный паттерн состоит в том, чтобы как можно больше развиваться в ObjC и погружаться в слои C только для того, что невозможно при использовании платформ ObjC более высокого уровня, поэтому на этой основе рекомендуется подход для всех new код будет использовать ObjC