Вы создаете аргумент точно так же, как и любой другой аргумент, передаваемый методу.
Как вы указали, сигнатура метода требует NSError ** для своего последнего аргумента (индекс 4).Итак, вам нужно будет объявить один, но есть небольшая хитрость.
NSError **errorPointer
Дает вам переменную, которая указывает на переменную NSError.Но, поскольку вы не указали, чтобы он указывал на какую-либо переменную, он указывает на ноль.Поэтому, когда вы запускаете вызов, селектор не сможет изменить переменную, на которую указывает указатель ошибки.Другими словами, это будет похоже на вызов [myData writeToFile:string options:dataOptions error:NULL]
.
Итак, вы также захотите объявить переменную NSError и назначить ее адрес в качестве переменной, на которую должен указывать ваш errorPointer:
NSError *error;
NSError **errorPointer = &error;
Теперь вы можете передать errorPointer в качестве аргумента, и вы сможете проверить его позже, если возникла проблема при вызове метода.Прочтите этот пост на NSInvocation , чтобы получить немного больше помощи (совет по поводу Марка Далримпла для указания на пост в блоге)
Важно также понимать, чтообласть действия должна учитываться для аргументов, которые вы создаете и передаете в ваш вызов.Взгляните на похожий вопрос, который я задал здесь .