Что делает “Ключ Контроллера”, означают в Интерфейсном Разработчике> Инспектор> Привязка?

Я рекомендую вам использовать функции min2 или min3 или недавно добавленную функцию if3 в GEKKO.

K = m.min3(Ck(x1,x2,x3,x4),15)

Вот дополнительная информация о MPCC и переменных двоичного переключения . Вы не можете использовать функции с непостоянными градиентами, потому что это вызывает проблемы с решателями и тем, как они ищут решение. Функции min3 и if3 используют бинарные переменные и решают задачу как задачу со смешанным целым числом, а min2 используют MPCC. Вот короткий пример, который демонстрирует использование min2 и min3 .

Example use of min2 and min3 functions

import numpy as np
import matplotlib.pyplot as plt
from gekko import GEKKO
m = GEKKO(remote=False) 
p = m.Param(value=np.linspace(10,20,21))
x = m.Var()
m.Equation(x==p)
# with MPCCs
y2 = m.min2(p,15)
# with integer variables
y3 = m.min3(p,16)
m.options.IMODE = 2
m.solve()
plt.plot(p,x,'b-',label='x')
plt.plot(p,y2,'g:',label='MPCC')
plt.plot(p,y3,'r--',label='Integer Switch')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.show()

5
задан skaffman 14 March 2010 в 00:01
поделиться

4 ответа

Всплывающее меню Controller Key является способом помочь Вам обнаружить, какие ключи контроллер (обычно NSArrayController, NSObjectController или NSTreeController) представляет.

Лучший пример selection ключ NSArrayControllers, который содержит набор выбранных объектов. То, что сбивает с толку, является подарками NSObjectController ключ 'выбора' также, хотя контроллер может управлять только отдельным объектом (поэтому выбор = объект).

Я соглашаюсь, что это не ясно вообще. Я лично начал понимать это, когда я связал свои объекты программно (т.е. использование bind:toObject:withKeyPath:options: метод).

4
ответ дан 14 December 2019 в 01:18
поделиться

Это имеет отношение к кодированию значения ключа. Можно связать управление в IB к значению в контроллере. Для соединения того значения необходимо указать keypath к нему. Например, если у Вас есть текстовое поле в IB, и Вы хотите обязать его говорить поле, названное 'именем' в Вашем контроллере, Вы указали бы 'имя' как keypath. Затем необходимо создать поле имени в контроллере, чтобы быть доступными посредством кодирования значения ключа. Это сделано в 10,5 при помощи @property и @synthesize спецификаторов.

1
ответ дан 14 December 2019 в 01:18
поделиться

Взгляните на эту тему: Привязки значений ключей какао: каковы объяснения различных параметров для ключа контроллера?

Я опубликовал объяснение, где найти определения для всех ключей контроллера.

0
ответ дан 14 December 2019 в 01:18
поделиться

[Копирование моего ответа на другой вопрос...]

Ключ контроллера - это ключ для (свойства объекта контроллера), к которому вы привязываетесь. Ключ модели - это путь к ключу, с помощью которого связанный объект может обращаться к объектам модели за более базовыми объектами, такими как строки или изображения, или к другим объектам модели (т.е. углубляться в модель).

Пример: Допустим, у вас есть объекты Person в контроллере массива, и у каждого Person есть имя. Вы привязываете колонку таблицы к контроллеру массива, ключ контроллера arrangedObjects (тем самым получая объекты модели), ключ модели путь name (тем самым получая объекты значений).

Более сложный пример: Предположим, у вас есть контроллер массива Departments. Каждый отдел содержит людей (сотрудников отдела). Вы можете связать контроллер массива People с контроллером Departments, ключ контроллера arrangedObjects (получение объектов модели Department), путь ключа модели @distinctUnionOfObjects.employees (получение объектов модели Person), а затем связать колонку таблицы с контроллером People, ключ контроллера arrangedObjects, путь ключа модели name.

Эта таблица будет предназначена для людей, которые работают в вашей компании; если у вас есть отдельная таблица перспективных сотрудников, вы можете создать объекты Person и для них, и они не будут отображаться в таблице существующих сотрудников, потому что у них нет отдела. Когда вы примете их на работу, вы добавите их в один или несколько отделов; тогда они автоматически появятся в контроллере массива People, потому что этот контроллер массива наблюдает за сотрудниками всех отделов.

4
ответ дан 14 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

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