WebScripting
WebScripting неофициальный протокол, определяющий методы, которые классы могут реализовать для экспорта их интерфейсов в среду WebScript, таких как JavaScript.
Не все свойства и методы экспортируются в JavaScript по умолчанию. Объект должен реализовать методы класса, описанные ниже для указания свойств и методов для экспорта. Кроме того, если его тип возврата и все его параметры не являются объектами Objective C или скалярами, метод не экспортируется.
Аргумент метода и типы возврата, которые являются объектами Objective C, будут преобразованы в надлежащие типы для среды сценариев. Например:
nilпреобразовывается в неопределенный.NSNumberобъекты будут преобразованы в числа JavaScript.NSStringобъекты будут преобразованы в строки JavaScript.NSArrayобъекты будут отображены на специальных массивах только для чтения.NSNullбудет преобразован в JavaScriptnull.WebUndefinedбудет преобразован в неопределенный.WebScriptObjectэкземпляры будут развернуты для среды сценариев.
Экземпляры всех других классов будут обернуты прежде чем быть переданным сценарию и развернуты, когда они возвращаются к Objective C. Типы примитивов такой как int и char брошены к числовому в JavaScript.
Доступом к атрибутам объекта, таким как переменные экземпляра, управляет кодирование значения ключа (KVC). Методы KVC setValue:forKey: и valueForKey: используются для доступа к атрибутам объекта от среды сценариев. Кроме того, среда сценариев может делать попытку любого числа запросов атрибута или вызовов метода, не экспортирующихся Вашим классом. Можно управлять этими запросами путем переопределения setValue:forUndefinedKey: и valueForUndefinedKey: методы из протокола кодирования значения ключа.
Исключения могут быть повышены от среды сценариев путем отправки a throwException: обменивайтесь сообщениями к соответствующему WebScriptObject экземпляр. Метод, повышающий исключение, должен быть в рамках вызова сценария.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import WebKit
Objective C
@import WebKit;
Доступность
Доступный в OS X v10.3.9 и позже.
-
Возвращает имя среды сценариев для атрибута, указанного ключом.
Объявление
Swift
class func webScriptNameForKey(_name: UnsafePointer<Int8>) -> String!Objective C
+ (NSString *)webScriptNameForKey:(const char *)nameПараметры
nameИмя атрибута.
Возвращаемое значение
Имя раньше представляло атрибут в среде сценариев.
Оператор импорта
Objective C
@import WebKit;Swift
import WebKitДоступность
Доступный в OS X v10.3.9 и позже.
-
Возвращает имя среды сценариев для селектора.
Объявление
Swift
class func webScriptNameForSelector(_aSelector: Selector) -> String!Objective C
+ (NSString *)webScriptNameForSelector:(SEL)aSelectorПараметры
aSelectorСелектор.
Возвращаемое значение
Имя раньше представляло селектор в среде сценариев.
Обсуждение
Это - Ваша ответственность гарантировать, что возвращенное имя уникально для сценария, вызывающего этот метод. Если возвращается этот метод
nilили Вы не реализуете его, имя по умолчанию для селектора создается следующим образом:Двоеточие (“”:) в Objective C селектор заменяется подчеркиванием (“_”).
Подчеркивание в селекторе Objective C снабжается префиксом знак доллара (“$”).
Знак доллара в селекторе Objective C снабжается префиксом другой знак доллара.
Следующая таблица показывает примеры того, как создается имя по умолчанию:
Селектор Objective C
Имя сценария по умолчанию для селектора
setFlag:setFlag_setFlag:forKey:withAttributes:setFlag_forKey_withAttributes_propertiesForExample_Object:propertiesForExample$_Object_set_$_forKey:withDictionary:set$_$$_$_forKey_withDictionary_Так как конструкция по умолчанию для имени метода может сбить с толку в зависимости от его имени Objective C, необходимо реализовать этот метод и возвратить более человекочитаемое имя.
Оператор импорта
Objective C
@import WebKit;Swift
import WebKitДоступность
Доступный в OS X v10.3.9 и позже.
-
Возвраты, должен ли селектор быть скрыт от среды сценариев.
Объявление
Swift
class func isSelectorExcludedFromWebScript(_aSelector: Selector) -> BoolObjective C
+ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelectorПараметры
aSelectorСелектор.
Возвращаемое значение
YEStrueесли селектор, указанныйaSelectorдолжен быть скрыт от среды сценариев; иначе,NOfalse.Обсуждение
Только методы с допустимыми параметрами и типами возврата экспортируются в WebKit среда JavaScript. Допустимые типы являются объектами Objective C и скалярами. Значение по умолчанию
YEStrue.Оператор импорта
Objective C
@import WebKit;Swift
import WebKitДоступность
Доступный в OS X v10.3.9 и позже.
-
Возвраты, должен ли ключ быть скрыт от среды сценариев.
Объявление
Swift
class func isKeyExcludedFromWebScript(_name: UnsafePointer<Int8>) -> BoolObjective C
+ (BOOL)isKeyExcludedFromWebScript:(const char *)nameПараметры
nameИмя атрибута.
Возвращаемое значение
YEStrueесли атрибут, указанныйnameдолжен быть скрыт от среды сценариев; иначе,NOfalse.Обсуждение
Значение по умолчанию
YEStrue.Оператор импорта
Objective C
@import WebKit;Swift
import WebKitДоступность
Доступный в OS X v10.3.9 и позже.
-
Когда сценарий пытается вызвать метод на представленный объект непосредственно, выполняется.
Объявление
Swift
func invokeDefaultMethodWithArguments(_args: [AnyObject]!) -> AnyObject!Objective C
- (id)invokeDefaultMethodWithArguments:(NSArray *)argsПараметры
argsПараметры, которые будут переданы методу по умолчанию.
Возвращаемое значение
Результат вызова метода по умолчанию.
Оператор импорта
Objective C
@import WebKit;Swift
import WebKitДоступность
Доступный в OS X v10.3.9 и позже.
-
invokeUndefinedMethodFromWebScript (_: withArguments:) - invokeUndefinedMethodFromWebScript:withArguments:Вызов неопределенного метода дескрипторов от среды сценариев.
Объявление
Swift
func invokeUndefinedMethodFromWebScript(_name: String!, withArgumentsargs: [AnyObject]!) -> AnyObject!Параметры
nameИмя неопределенного метода.
argsПараметры передали неопределенному методу.
Возвращаемое значение
Результат вызова неопределенного метода.
Обсуждение
Когда сценарий пытается вызвать метод, не непосредственно экспортируемый в среду сценариев, этот метод вызывается. Необходимо возвратить результат вызова, преобразованного соответственно для среды сценариев.
Оператор импорта
Objective C
@import WebKit;Swift
import WebKitДоступность
Доступный в OS X v10.3.9 и позже.
-
Когда среда сценариев сбрасывается, выполняет очистку.
Объявление
Swift
func finalizeForWebScript()Objective C
- (void)finalizeForWebScriptОбсуждение
Этот метод вызывается на объекты, представленные среде сценариев непосредственно перед тем, как сбрасывается среда сценариев. После вызова на принимающий объект больше не будет ссылаться среда сценариев. Дальнейшие ссылки на
WebScriptObjectэкземпляры, создаваемые представленным объектом, будут недопустимы и могут привести к непредсказуемым результатам.Оператор импорта
Objective C
@import WebKit;Swift
import WebKitДоступность
Доступный в OS X v10.3.9 и позже.
