Делегат приложения - какао

Может использовать np.roll для нахождения последнего индекса трех последовательных значений.

import numpy as np

idx = ((l == np.roll(l, 1)) & (l == np.roll(l, 2))).cumsum().argmax()

l[idx:]
#[1, 2, 4, 1, 3, 5, 2, 2, 6, 4, 1, 6, 1, 1, 3, 5, 2, 2, 6, 4, 1, 6, 2, 7, 2, 6, 1, 1]
5
задан Peter Hosey 3 September 2009 в 20:05
поделиться

3 ответа

- (id)init
{
    if (self = super init]) {
        [NSApp setDelegate:self];
    }
    return self;
}

You can also do this in Interface Builder; from "File's Owner" in MainMenu.xib, just drag the "delegate" outlet to your object. You may want to consider using -awakeFromNib instead though.

6
ответ дан 18 December 2019 в 06:12
поделиться

Начиная с Xcode 3.2, шаблон приложения Mac также поставляется с уже подключенным делегатом приложения, у которого есть такой метод.

Чтобы настроить это в проекте, созданном до Xcode 3.2, создайте новый класс, экземпляром которого будет ваш делегат. Обычно я называю свое «AppDelegate». Для этого щелкните правой кнопкой мыши группу «Классы» и выберите «Добавить файл», затем выберите шаблон файла подкласса Cocoa NSObject.

Откройте только что созданный заголовок (AppDelegate.h). Дайте ему любые переменные экземпляра, которые хотите. Затем нажмите «Перейти к аналогу». Это приведет вас к файлу реализации (AppDelegate.m). Добавьте сюда свой метод экземпляра applicationDidFinishLaunching: . В отличие от iPhone, это метод обработчика уведомлений, поэтому для него требуется экземпляр NSNotification, а не экземпляр NSApplication.

Теперь подключим его. В группе Ресурсы откройте MainMenu.nib. Перетащите объект из окна библиотеки в окно пера верхнего уровня (то, что со значками в нем, например, «Владелец файла» и «Первый ответчик»). Выберите только что созданный объект и откройте Инспектор удостоверений. Задайте для класса объекта значение AppDelegate, соответствующее имени, которое вы использовали в Xcode. Щелкните правой кнопкой мыши владельца файла и перетащите его из его выхода делегата в новый объект.

В Xcode добавьте оператор NSLog в свой метод applicationDidFinishLaunching: . Нажмите «Сохранить все», затем «Построить и начать». Вернитесь к Xcode и откройте консоль отладчика. Если вы все сделали правильно и я ничего не забыл, вы должны увидеть там сообщение журнала.

20
ответ дан 18 December 2019 в 06:12
поделиться

Вы вообще пропустили файлы делегатов приложения? Похоже, что в скриптах установки Xcode есть ошибка (по крайней мере, для 3.2.1 в Snow Leopard), которая устанавливает последние шаблоны проектов не в ту папку. Старый шаблон для проекта "Cocoa Application" не содержит файлов делегатов.

Я объяснил, что я обнаружил (и как "исправил" его) в посте блога под названием Исправление шаблонов проекта Xcode.

Спасибо, Грэм

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