Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как вызвать функцию другого окна

Как вызвать функцию одного ВьюКонтроллера, в другом ВьюКонтроллере?
Вопрос может быть глупым и банальным, но никак не могу разобраться. Я делаю, с помощью протокола и экстеншнов. Может что-то я делаю неправильно. Пожалуйста объясните.
Ответ:
Сообщение от Vorona
тут мне в голову могут прийти случаи child-parent отношений и передача управления при закрытии одного и открытии другого
Это безусловно. Может, я не до конца понимаю архитектуру озвученную просто. Делегирования, как правило, достаточно для реализации несложных вызовов.
Ибо вызов метода у стороннего VC это, как ни крути, нарушение инкапсуляции и повышение связности. От чего, как гласит великая мудрость, надо убегать.
Вопрос: Вызов метода из другого класса

Нужно вызвать метод myView.mOK из SOAPClient 

SOAPClient.h

Код

@interface SOAPClient : NSObject <NSXMLParserDelegate>
{
  SEL ok;
}

@property (nonatomic) SEL ok;
- (void) sendRequest;
@end


Код

@implementation INRSOAPClient
@synthesize ok;

-(void) sendRequest{
 [self performSelector:@selector(ok)]; // ошибок нет, но строка "selector exec" не выводится
}

@end



myView.m

Код

-(void) mOK
{
  NSLog(@"selector exec"); // 
}

-(IBAction)invokeService
{
    SOAPClient *soapClient = [[SOAPClient alloc] initWithMethod :@"dd" url:@"rr" text:@"8888"];
    
    soapClient.ok = @selector(mOK);
    [soapClient sendRequest];
}


Ответ:
Спасибо!
Вопрос: Как измерить сколько по времени выполняется та или иная функция приложения?

Всем доброго времени суток. Сразу говорю, в mac OS не шарю, но на работе дали следующую задачку.
Нужно скачать одно приложение на iPad с AppStore и измерить, сколько по времени выполняется та или иная функция (например, открытие приложения).
Как я понимаю, есть два способа реалиховать это:
1) Подключить через usb устройство;
2) Запустить приложение через симулятор.
Что касается непосредственно измерений времени, то вижу единственный вариант: отслеживать, в какой момент идет нагрузка на процессор, и в какой момент она заканчивается. Эта разница и будет временем выполнения этой функции приложения.

Разъяснился кривовато, но, надеюсь, все всё поняли. Кто какие программы и способы может подсказать?
Ответ: Спасибо
Вопрос: ОС iOS: функция «Общие файлы»

В ОС iOS есть функция «Общие файлы».
Нашел мануалы как ей пользоваться как юзеру, но не могу найти как такую прекрасную возможность добавить в программу?
Ответ:
Вот спасибо!
Я чуял что все просто:)
Вопрос: Обновление одного контроллера другим

Здравствуйте, уважаемые коллеги!

Решил вот написать программу в OS X с "хорошо пахнущим кодом". Отделил бизнес-логику в отдельные классы, Core Data спрятал за Facade, сделал большой StoryBoard с отдельными ViewController-ами. Получилось вроде красиво.
Но вот незадача. Есть один контроллер который обслуживает список данных. Текущий объект списка хранится в Синглетоне бизнес-логики. Но как бы покрасивее заставить другой контроллер, описывающий View с деталями, обновиться, как только обновится этот самый текущий объект?

Заранее спасибо!
Ответ: у меня дежавю? или пару тем назад я видел ну в точности такой же вопрос?
Вопрос: Как отобразить связь между объектами MVC на UML

Вопрос о uml но я думаю скорее всего ближе ios программистам.
У нас есть 2 вьюКонтроллера и 1 класс с данными(назовем его MyData), типо модель, там хранятся данные и методы для их обработки что бы можно их было вызвать из любого вьюконтроллера. При запуске программы мы попадаем на первую вьюху и сразу создаем объект MyData, вызываем методы получаем результат и выводим на экран, потом переходим на 2 вьюконтроллер, передаем туда по сигвею этот же объект и опять вызываем метод и выводим результат. Вопрос в том какими стрелочками на юмл диаграмме соединить эти 3 класса? Как между собой взаимодейсвуют вьюконтролееры? Насколько я понимаю если бы никакие данные не передавались то никакой связи на диаграмме вообще не надо? а как в этом случае? и как называется связь в ходе которой мы просто вызываем методы и передаем данные для вычисления? это не композиция и не агрегация. да и ассоциация вроде когда есть логическая зависимость?

Это сообщение отредактировал(а) Rubio - 23.3.2014, 18:10
Ответ:
Вопрос о uml но я думаю скорее всего ближе ios программистам.
У нас есть 2 вьюКонтроллера и 1 класс с данными(назовем его MyData), типо модель, там хранятся данные и методы для их обработки что бы можно их было вызвать из любого вьюконтроллера. При запуске программы мы попадаем на первую вьюху и сразу создаем объект MyData, вызываем методы получаем результат и выводим на экран, потом переходим на 2 вьюконтроллер, передаем туда по сигвею этот же объект и опять вызываем метод и выводим результат. Вопрос в том какими стрелочками на юмл диаграмме соединить эти 3 класса? Как между собой взаимодейсвуют вьюконтролееры? Насколько я понимаю если бы никакие данные не передавались то никакой связи на диаграмме вообще не надо? а как в этом случае? и как называется связь в ходе которой мы просто вызываем методы и передаем данные для вычисления? это не композиция и не агрегация. да и ассоциация вроде когда есть логическая зависимость?

Это сообщение отредактировал(а) Rubio - 23.3.2014, 18:10
Вопрос: Вызов метода Phonegapa с параметрами

Всем добрый день. Есть метод который используется в плагине Phonegap: -(void) GetSystemLng:(CDVInvokedUrlCommand*)command

При вызове из хтмл ему передают параметры которые обрабатываются: [command.arguments objectAtIndex:0]

ВОпрос: как его данный метод вызвать из наитивного кода, как правильно передать нужные мне параметры? Пробовал так:     


Код

Test* myScript = [[Test alloc] init]; //First, we create an instance of SomeScript
    [myScript GetSystemLng:@"sdsd"]; //Next, we send the loggedIn message to our new instance


но при обращении к [command.arguments objectAtIndex:0] вылетает ошибка: 

-[__NSCFConstantString arguments]: unrecognized selector sent to instance 0x1bcb94
2014-06-21 23:22:10.688 112.travel[6648:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString arguments]: unrecognized selector sent to instance 0x1bcb94'

Буду признателен за помощь! Заранее спасибо!
Ответ:
Всем добрый день. Есть метод который используется в плагине Phonegap: -(void) GetSystemLng:(CDVInvokedUrlCommand*)command

При вызове из хтмл ему передают параметры которые обрабатываются: [command.arguments objectAtIndex:0]

ВОпрос: как его данный метод вызвать из наитивного кода, как правильно передать нужные мне параметры? Пробовал так:     


Код

Test* myScript = [[Test alloc] init]; //First, we create an instance of SomeScript
    [myScript GetSystemLng:@"sdsd"]; //Next, we send the loggedIn message to our new instance


но при обращении к [command.arguments objectAtIndex:0] вылетает ошибка: 

-[__NSCFConstantString arguments]: unrecognized selector sent to instance 0x1bcb94
2014-06-21 23:22:10.688 112.travel[6648:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString arguments]: unrecognized selector sent to instance 0x1bcb94'

Буду признателен за помощь! Заранее спасибо!
Вопрос: Работа в среде xcode 6

Изучаю программирование в этой среде малыми шагами - возник ряд вопросов...
Я пытаюсь написать простенькую графическую игру.
1. Есть ли в xcode 6 возможность работать с векторной графикой а не с растровой встроенными средствами без сторонних библиотек? А то масштабирование на разные экраны сильно портит вид анимации...
2. При отладке иногда вываливается ассемблерный код приложения. Зачем вообще нужен ассемблер ? при таком высокоуровневом программировании?
3. Как реально работать с вещами типа Profile -> Activity monitor -> Automation -> Energy diagnostic. Без поллитра не разберешь... что код запускаю что эти расширения ничего не происходит.
4. И вот глюк который я не понимаю уже неделю... В своем приложении в редакторе интерфейса (view controller)
завел два ImageView с именами ImageView и ImageViewR ... задал им графические картинки. В .m файле приложения вижу поля
соответствующие этим кантролам... @synthesize ImageView; @synthesize ImageViewR;..
Завел таймер для создания анимации но в обработке тика таймера OnTimer {}...Вижу что ImageView сушествующий объект
а ImageViewR всегда nill. В этом и вопрос почему nill? Оба объекта одинаковой видимости но один есть а другого нет. При этом на форме они видны оба...
Ответ:
Сообщение от Митя800
Документацию Apple хоть раз открывали? Там все в картинках доходчиво описано.
Есть книги по xcode. Документацию онлайн ? Она не работает на виртуальной машине... или файл какой скачать ?

Добавлено через 2 минуты
Сообщение от Митя800
Привязку IBOutlet делали?
А что надо обязательно каждый кантрол привязывать ? (в данном случае ImageView )... На самом деле когда я кликнул на
привязку как раз этот эффект пропал...

Добавлено через 13 минут
И еще я совсем не понял размеры окна эмулятора. Задаю свойство проекта - портрет или ландшафт а оно остается квадратным...
Помещаю в левый угол кантрол а он остается в правом... У меня единственный файл main.storyboard но в эмуляторе кантролы располагаются не так как о окне дизайна!

Добавлено через 4 часа 13 минут
Стал читать про SpriteKit движок. Встроенный я так понял в xcode 7. Срочно перехожу на него!
Вопрос: AVAsset memory leak

Столкнулся с интересной проблеммой при разработке приложения (раньше все было хорошо)
Самое интересное что на симуляторе у других людей все нормально, все нормально и на моем ipad

Код

- (void)seekToTranscript:(int)index atPosition:(float)position {
    …
    EpisodeTranscript *transcript = [_transcripts objectAtIndex:index];
    if ([transcript initialised] < 0) {
        …
    } else {
        NSURL *url = [[transcript items] objectAtIndex:[transcript initialised]];
        …
        AVAsset *asset = [AVURLAsset assetWithURL:url];
        [asset loadValuesAsynchronouslyForKeys:@[@"duration"] completionHandler:^ {
            AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
            NSLog(@"%@", playerItem);
        }];
    }
}


когда вызывается AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset]; использованная память подскакивает аж до 1гб, раньше все было хорошо. Повторный вызов функции выдает malloc error: cannot allocate region

В чем может быть проблемма?
Ответ:
Столкнулся с интересной проблеммой при разработке приложения (раньше все было хорошо)
Самое интересное что на симуляторе у других людей все нормально, все нормально и на моем ipad

Код

- (void)seekToTranscript:(int)index atPosition:(float)position {
    …
    EpisodeTranscript *transcript = [_transcripts objectAtIndex:index];
    if ([transcript initialised] < 0) {
        …
    } else {
        NSURL *url = [[transcript items] objectAtIndex:[transcript initialised]];
        …
        AVAsset *asset = [AVURLAsset assetWithURL:url];
        [asset loadValuesAsynchronouslyForKeys:@[@"duration"] completionHandler:^ {
            AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
            NSLog(@"%@", playerItem);
        }];
    }
}


когда вызывается AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset]; использованная память подскакивает аж до 1гб, раньше все было хорошо. Повторный вызов функции выдает malloc error: cannot allocate region

В чем может быть проблемма?
Вопрос: Два segue, Два viewController, Одно отображение

Добрый день! Изучаю работу c segue - и столкнулся с проблемой.

Какая стоит передо мной задача. Есть два класса (viewController), один наследуется от другого.
Отображение для них общее.

Мне нужно с главного отображения переходить на следующее отображение, но в зависимости от кнопки, выбирать для этого отображения конкретный класс

Если делать без storyboard - то все просто. Я создаю нужный мне viewController (initWithXibName) указывая свое отображение.

Здесь же я создал 2 segue - оба получается от соответствующих кнопок. Обе ведут на второе отображение. Но ведь в IB класс указан в настройках.

Я использую функцию prepareForSegue, но не пойму как изменить класс для этого отображения.

Это возможно? Хотелось бы использовать одно отображение, чтобы не плодить второе отображение (потому что просто два режима, просмотр записи, и добавление записи) - но хотелось бы два контроллера.

Спасибо!
Ответ: я утрировал) просто не понял Ваш вопрос, о том, зачем нужен еще один уровень наследования.

На самом деле, я изучаю(вспоминаю) objective-c пользуясь книгами (одна из них Head First) - ну так вот там был еще ios5. Я пытаюсь реализовать примеры из книги, но исползуя новые возможности, в данном случае SEGUE.

В книге используется простой прием. initWithXibName. Который позволяет загрузить любой VC с любым отображением. Здесь же так не получается - поэтому у меня появился этот вопрос)

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