В дополнение к описанному выше методу для initialize
, вы можете установить метод для @<-
. Причина этого в том, что если вы делаете что-то вроде
x <- new("person", age=5)
, то у вас есть действующий человек с age=5
и doubleage=10
. Но что, если вы сейчас сделаете
x@age <- 6
? Теперь age
равно 6, но doubleage
по-прежнему 10, поэтому объект больше не действителен.
В документации R утверждается, что вы можете написать метод для @<-
, который исправит это:
setMethod("@<-",signature(object="Person"),function(object,name,value){
if(name=="age"){
object@age <- x
object@doubleAge <- x*2
} else if(e2=="doubleAge"){
object@doubleAge <- x
object@age <- value/2
} else slot(object,name) <- value
object
})
, однако, когда вы на самом деле запустите вышеуказанное, вы получите ошибку:
Ошибка в setGeneric (f, где = где): '@ < -' отправляет изнутри; методы могут быть определены, но обобщенная функция неявна и не может быть изменена.
blockquote>Это странно выглядящая ошибка, поскольку мы не пытаемся переопределить универсальный тип. Фактически, когда мы пытаемся
method.skeleton("@<-",signature(object="Person"))
, мы обнаруживаем, что R неохотно сообщает нам
Ошибка в genericForBasic (name): методы не могут быть определены для примитивной функции '@ < - 'в этой версии R
blockquote>Таким образом, если вы хотите, чтобы слоты были надежно согласованы, нам придется написать наши собственные методы получения и установки, в соответствии с
setAge <- function(x,value){ x@age <- value x@doubleAge <- value*2 x }
Есть способы сделать это без кода программной части ...
Вы можете использовать прикрепленный шаблон поведения для сопоставления событий командам, см. Реализацию Марлона Греча здесь
Вы также можете использовать расширение разметки , которое я написал для привязки InputBindings к командам ViewModel, например:
<UserControl.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{input:CommandBinding SomeCommand}"/>
</UserControl.InputBindings>
Однако я не уверен, что оно соответствует вашим конкретным потребностям ...
Фоновое изображение можно добавить в папку, перейдя в параметры просмотра и выбрав изображение. Обратите внимание, что для того, чтобы он работал с DMG, изображение должно быть расположено на этом образе диска (обычно невидимом)
Вы также можете проверить DMG Maker , если вам нужны дополнительные параметры.
EDIT :
Похоже, что ссылка больше не работает. Вы также можете использовать дисковую утилиту и следовать этому руководству. Учебник проведет вас через создание образа диска и добавление собственного фонового изображения.
ИЗМЕНИТЬ ЧАСТЬ DEUX: Вы также можете использовать дисковую утилиту и следовать этому руководству. Учебник проведет вас через создание образа диска и добавление собственного фонового изображения.
ИЗМЕНИТЬ ЧАСТЬ DEUX: Вы также можете использовать дисковую утилиту и следовать этому руководству. Учебник проведет вас через создание образа диска и добавление собственного фонового изображения.