iPhone надлежащее использование Делегата Приложения

Вы не разместили свой запрос, но, основываясь только на том, как он строится с динамическим списком параметров и большим количеством параметров, я собираюсь сделать предположение и сказать, что он имеет какое-то отношение к параметру sniffing - см .:

http://www.brentozar.com/archive/2013/06/the-elephant-and-the-mouse-or-parameter-sniffing-in-sql-server /

http://blogs.msdn.com/b/sqlprogrammability/archive/2008/11/26/optimize-for-unknown-a-little-known-sql -server-2008-feature.aspx

Основной идеей проблемы является создание оптимального плана выполнения запроса для определенного набора параметров, что очень мало оптимально для другого набора.

Существует несколько способов обойти проблемы с параметрами нюхания (к счастью, многие из них открылись в SQL Server 2008).

Вы могли:

  1. рефакторите свой запрос
  2. добавьте WITH RECOMPILE к вашему сохраненному proc / option (recompile) в ваш запрос
  3. optimize for unknown / option (optimize for... к вашему proc / query
  4. другие?

58
задан Chris Hanson 4 December 2008 в 22:05
поделиться

4 ответа

Обычно, необходимо только подключить вещи к делегату приложения если они:

  • были созданы из того же файла NIB, как делегат приложения (т.е. статические элементы UI в единственных интерфейсах окна)
  • связан с событием уровня приложения, обрабатывающим, который проходит через делегата приложения (как пункт меню для Предпочтительного Окна)

Для всего остального, необходимо создать одиночный элемент, который управляет доступом к ним.

Jason Coco предложил направить через Контроллер Приложения. В моих программах я обычно избегаю этого, поскольку я думаю, что это помещает слишком много ответственности в верхний уровень - я думаю, что вещи должны самосправиться, где возможный и что высокоуровневое управление должно только использоваться, когда существует требование для координации между модулями однорангового уровня.

я не иду, связывают мой собственный блог, но если Вы Google меня и одиночные элементы, Вы, вероятно, найдете сообщение, которое я записал вдаванию в большее количество подробностей.

52
ответ дан Matt Gallagher 7 November 2019 в 15:29
поделиться

Матовый немного слишком скромно. Его регистрация на предмете является одним из лучших, которые я считал, и заслуживает ссылки. http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

31
ответ дан Brad The App Guy 7 November 2019 в 15:29
поделиться

Я не вижу проблемы с Вашим подходом. Я обычно использую одиночный элемент для обработки этой ситуации:

// MyCommon.h:
@interface MyCommon
class MyCommon : NSObject
{
    int user;
};

@property(assign) int user;

+ (MyCommon *)singleton;

@end

// MyCommon.m:
@implementation MyCommon

static MyCommon * MyCommon_Singleton = nil;

+ (MyCommon *)singleton
{
    if (nil == MyCommon_Singleton)
    {
        MyCommon_Singleton = [[MyCommon_Singleton alloc] init];
    }

    return MyCommon_Singleton;
}
@end

MyCommon одиночный элемент тогда используется где угодно в моем приложении следующим образом:

int user = [MyCommon singleton].user;
13
ответ дан e.James 7 November 2019 в 15:29
поделиться

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

3
ответ дан Jason Coco 7 November 2019 в 15:29
поделиться