Создайте перетаскивать-отбрасывание, графическое при установке приложения OS X от dmg

В дополнение к описанному выше методу для 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, где = где): '@ < -' отправляет изнутри; методы могут быть определены, но обобщенная функция неявна и не может быть изменена.

Это странно выглядящая ошибка, поскольку мы не пытаемся переопределить универсальный тип. Фактически, когда мы пытаемся

method.skeleton("@<-",signature(object="Person"))

, мы обнаруживаем, что R неохотно сообщает нам

Ошибка в genericForBasic (name): методы не могут быть определены для примитивной функции '@ < - 'в этой версии R

Таким образом, если вы хотите, чтобы слоты были надежно согласованы, нам придется написать наши собственные методы получения и установки, в соответствии с

setAge <- function(x,value){
  x@age <- value
  x@doubleAge <- value*2
  x
}
5
задан psychotik 15 May 2009 в 22:58
поделиться

1 ответ

Есть способы сделать это без кода программной части ...

Вы можете использовать прикрепленный шаблон поведения для сопоставления событий командам, см. Реализацию Марлона Греча здесь

Вы также можете использовать расширение разметки , которое я написал для привязки InputBindings к командам ViewModel, например:

<UserControl.InputBindings>
    <MouseBinding Gesture="LeftClick" Command="{input:CommandBinding SomeCommand}"/>
</UserControl.InputBindings>

Однако я не уверен, что оно соответствует вашим конкретным потребностям ...

Фоновое изображение можно добавить в папку, перейдя в параметры просмотра и выбрав изображение. Обратите внимание, что для того, чтобы он работал с DMG, изображение должно быть расположено на этом образе диска (обычно невидимом)

Вы также можете проверить DMG Maker , если вам нужны дополнительные параметры.

EDIT :

Похоже, что ссылка больше не работает. Вы также можете использовать дисковую утилиту и следовать этому руководству. Учебник проведет вас через создание образа диска и добавление собственного фонового изображения.

ИЗМЕНИТЬ ЧАСТЬ DEUX: Вы также можете использовать дисковую утилиту и следовать этому руководству. Учебник проведет вас через создание образа диска и добавление собственного фонового изображения.

ИЗМЕНИТЬ ЧАСТЬ DEUX: Вы также можете использовать дисковую утилиту и следовать этому руководству. Учебник проведет вас через создание образа диска и добавление собственного фонового изображения.

ИЗМЕНИТЬ ЧАСТЬ DEUX: Здесь есть еще один учебник

10
ответ дан 13 December 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: