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
Селектор.
Возвращаемое значение
YES
true
если селектор, указанныйaSelector
должен быть скрыт от среды сценариев; иначе,NO
false
.Обсуждение
Только методы с допустимыми параметрами и типами возврата экспортируются в WebKit среда JavaScript. Допустимые типы являются объектами Objective C и скалярами. Значение по умолчанию
YES
true
.Оператор импорта
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
Имя атрибута.
Возвращаемое значение
YES
true
если атрибут, указанныйname
должен быть скрыт от среды сценариев; иначе,NO
false
.Обсуждение
Значение по умолчанию
YES
true
.Оператор импорта
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 и позже.