Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Storyboards в podspec #2

Closed
vkovtash opened this issue Jan 18, 2013 · 10 comments
Closed

Storyboards в podspec #2

vkovtash opened this issue Jan 18, 2013 · 10 comments

Comments

@vkovtash
Copy link
Collaborator

Пожалуй стоит включить в podspec STGT сториборды, чтобы можно было их использовать в других проектах, а STGTAppDelegate наоборот исключить.

@gogbajbobo
Copy link
Owner

Если убрать STGTAppDelegate, то выскакивают ошибки, там у меня собственно в STGTAppDelegate рождается сам трекер, который отслеживает и собирает данные о местоположении, и синкер, который синхрит данные с сервером. Другие классы обращаются к STGTAppDelegate, чтобы получить доступ к трекеру и синкеру, например:

STGTAppDelegate *app = [[UIApplication sharedApplication] delegate];
_tracker = app.tracker;

Пока не могу придумать, как это сделать без AppDelegate.
Есть какой-то другой путь?

@vkovtash
Copy link
Collaborator Author

Я имел в виду убрать не из самого проекта, а из podspec.
Так как через cocoapods геотрекер будет подключаться в качестве библиотеки, AppDelegate уже будет в проекте.
Нужна инструкция по интеграции в существующий AppDelegate, потому что STGTAppDelegate вряд ли будет использоваться.

@gogbajbobo
Copy link
Owner

Если убрать STGTAppDelegate из podspec, то потом при подключении STGT.podspec в другие проекты будут вылезать ошибки, например в STGTDataSyncController.m, потому как в нём есть #import "STGTAppDelegate.h", из которого синкер берет указатель на трекер, как я писал выше. Если же убирать импорт из этих файлов, то тогда геотрекер как самостоятельное приложение поломается.

Я вот подумал, может мне в геотрекере переименовать STGTAppDelegate обратно в AppDelegate, тогда в импорте будет просто "AppDelegate.h", который уже будет у каждого проекта свой, и если следовать инструкции, которую я напишу, и добавить в AppDelegate необходимые строчки, то всё тогда должно будет собираться без ошибок.
Попробую сейчас так сделать, проверю, что получится.

@vkovtash
Copy link
Collaborator Author

Не поможет, так как в не факт, что в другом приложении название такое же.

Если нужны просто экзесмпляры STGTDataSyncController и STGTTrackingLocationController, которые доступны глобально, проще их синглтонами сделать. Как в pushauth UDOAuthBasic.

@gogbajbobo
Copy link
Owner

нет, так не выходит, не видят файлы из Pods то, что лежит не у них.

@gogbajbobo
Copy link
Owner

синглтоны это как? можно пальцем ткнуть куда пример посмотреть?

@gogbajbobo
Copy link
Owner

  • (id)sharedOAuth

{

static dispatch_once_t pred = 0;

__strong static id _sharedObject = nil;

dispatch_once(&pred, ^{

    _sharedObject = [[self alloc] init]; // or some other init method

});

return _sharedObject;

}

Это оно?

@vkovtash
Copy link
Collaborator Author

https://github.com/Unact/UDPushAuth/blob/master/pushauth/Classes/UDOAuthBasic.m

метод +(id)sharedOAuth

Объект будет всегда в единственном экземпляре и доступен по [UDOAuthBasic sharedOAuth] в данном случае.

@gogbajbobo
Copy link
Owner

ога, мерси.

@gogbajbobo
Copy link
Owner

Переписал код с использованием синглтонов.
Исключил STGTAppDelegate из STGT.podspec, добавил туда storyboard.
Добавил README.md с кратким описанием установки, настройки и использования.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants