Была такая же проблема в Xcode 8.3.
Я удалил метод tearDown
override func tearDown() {
super.tearDown()
}
, так как не нужно было его использовать. Как только я добавил его обратно, кнопка записи была включена.
Атрибут ScriptMethodAttribute является необязательным. (Однако к методам, которые можно вызывать из клиентского сценария, должен быть применен атрибут System.Web.Services .. ::. WebMethodAttribute.). Если метод не отмечен атрибутом ScriptMethodAttribute, метод будет вызываться с помощью команды HTTP POST, а ответ будет сериализован как JSON. Вы не можете изменить этот параметр из сценария.
из - http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx
РЕДАКТИРОВАТЬ: WebMethod и ScriptMethod не являются конкурирующими атрибутами. ScriptMethod может быть дополнительной аннотацией, как сказано в пункте выше.
Атрибут ScriptMethod используется в следующих двух сценариях.
Если у вас нет одного из вышеперечисленных требований; вам просто нужен ответ JSON с использованием запроса ajax, тогда вы можете просто использовать WebMethod.
Есть еще один непонятный момент: когда вы используете атрибут ScriptService? это используется, если вы используете платформу сценариев Microsoft Ajax Client, эти атрибуты сообщают серверу о необходимости создания прокси-объектов на клиенте, чтобы вы могли вызывать функции так же, как обычный объект. var MyRemoteObject = new RemoteObject ();
MyRemoteObject.getMessage (....)
и даже когда вы используете атрибут ScriptService, вам не нужно добавлять атрибут ScriptMethod только в вышеупомянутых сценариях.
Вначале меня это сбивало с толку, потому что я думал, что атрибуты ScriptService и ScriptMethod работают вместе, как атрибуты WebService и WebMethod.