Мое решение:
Просмотрите строку с помощью NSScanner и отметьте положение каждого многострочного и одиночного комментария и всех строк (что угодно, между одинарными и двойными кавычками). Сохраните позиции в массиве NSValues, которые представляют диапазоны каждого элемента.
Затем выполните итерацию по массиву комментариев, убедившись, что каждый комментарий не находится внутри строки. Чтобы проверить это, убедитесь, что местоположение каждого комментария не больше местоположения каждой строки, а местоположение комментария не попадает в положение + длина каждой строки.
И вуаля. Все, что не попадает в список, может быть безопасно удалено, поскольку оно является действительным комментарием.