Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Swift

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.86
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
#1

Нужна задержка между выполнениями действий - Swift

23.06.2014, 19:48. Просмотров 4952. Ответов 41
Метки нет (Все метки)

Здравствуйте.
Подскажите, как сделать, чтобы текст выводился с задеркой (например в одну секунду).
Например:
Код
println("Ла-ла-ла")
//А тут задержка в 1 секунду.
println("Бла-бла-бла")
На самом деле код нечно по другому будет выглядеть (не в консоле будет вывод).
Но мне надо, чтобы вывелся "Ла-ла-ла" и через секунду "Бла-бла-бла".
Заранее спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2014, 19:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужна задержка между выполнениями действий (Swift):

Задержка между выполнениями функций макроса. - Visual Basic
макрос выполняет подряд функцию А, функцию Б, функцию В, ... Как сделать задержку, например 1секунду, между выполнением функий?

Задержка между действиями - Программирование Android
Есть такой вот метод: public void move(int x) { while (this.x != x) { /* Ваш код */ this.x += 1; } } Как...

Задержка между командами - C++ Linux
Добрый день! я хочу спросить, почему при выполнении кода int y=0; while(1) { while(y++<1000000);y=0; printf("z "); } не...

AS 3.0 Задержка между клипами - ActionScript
Здравствуйте. Порылся по форуму, видел несколько вариантов ответо на нужный мне вопрос, но не смог его решить. Какая задача. Есть...

Нужна задержка в выполнении программы или как использовать таймер? - Delphi
Доброго времени суток:) Суть программы: есть круглая мишень и нужно сделать 10 выстрелов, координаты x, y считываются из таблицы и для...

Задержка между вызовами методами - C#
Всем привет.Подскажите пожалуйста. В одном месте кода вызываю метод А. Сейчас мне надо после метода A добавить вызов метода B через 3...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
23.06.2014, 20:06 #2
Objective-C
1
sleep(1)
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
23.06.2014, 20:53  [ТС] #3
TexHuK, спасибо.
А как вообще можно находить такие классы? Меня интересуеть не то, что ввожу например "sleep" и мне документация о нём. А так, чтобы я мог найти класс, который мне нужен, не зная его названия, но зная его функционал.

Добавлено через 3 минуты
И ещё одно.
Objective-C
1
sleep(1)
Как сделать, чтобы задержка была пол секунды, или 0,005 секунды?
0
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
24.06.2014, 10:43 #4
dispatch_after - GCD in swift?
http://stackoverflow.com/questions/2...r-gcd-in-swift

How can I use NSTimer in Swift?
http://stackoverflow.com/questions/2...timer-in-swift

Как сделать, чтобы задержка была пол секунды, или 0,005 секунды?
0,005 секунды это не задержка вообще. Минимальная задержка это от 0.1 сек

Добавлено через 6 минут
А как вообще можно находить такие классы?
swift использует теже самые фреймворки что и ObjC
=> методы фреймворков swift идентичны ObjC
=> изучая ObjC == изучению swift, причем материалов по ObjC значительно больше.
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
24.06.2014, 11:04 #5
Цитата Сообщение от Mistin Посмотреть сообщение
TexHuK, спасибо.
А как вообще можно находить такие классы? Меня интересуеть не то, что ввожу например "sleep" и мне документация о нём. А так, чтобы я мог найти класс, который мне нужен, не зная его названия, но зная его функционал.

Добавлено через 3 минуты
И ещё одно.
Objective-C
1
sleep(1)
Как сделать, чтобы задержка была пол секунды, или 0,005 секунды?
Цитата Сообщение от Mistin Посмотреть сообщение
Как сделать, чтобы задержка была пол секунды, или 0,005 секунды?
на ум только вот это приходит
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import UIKit
 
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        var timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target:self, selector: "myMetod1", userInfo: nil, repeats: false)
   
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    func myMetod1() {
        println("lalala")
        
        var timer2 = NSTimer.scheduledTimerWithTimeInterval(0.1, target:self, selector: "myMetod2", userInfo: nil, repeats: false)
        
    }
    
    func myMetod2() {
        println("bababa")
    }
}
кстати, а как останавливать таймер в swift?
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
24.06.2014, 12:21 #6
Цитата Сообщение от TexHuK Посмотреть сообщение
кстати, а как останавливать таймер в swift?
У меня возник вопрос: а при чем тут swift?
Как раньше было замечено swift использует те же самые фреймворки.
NSTimer в swift идентичен NSTimer в obj-c. Следовательно у него точно такие же методы, в том числе эти: fire и invalidate.
Читайте документацию там все расписано.
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
24.06.2014, 13:05 #7
Цитата Сообщение от Xavier Посмотреть сообщение
У меня возник вопрос: а при чем тут swift?
синтаксис другой следовательно и обращение к методам поменялись

если в objc было
Objective-C
1
[myTimer invalidate]
то в swift
Objective-C
1
[miTimer.invalidate]
все же, некоторые действия вводят в заблуждение, а вот примеров и реально работающих исходников с нужными функциями и методами нету. Приходится тыка в ручную, исходя из логики obj-c
вот я и спрашиваю как правильно остановить? У меня что-то таймер не останавливается..
0
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
24.06.2014, 13:08 #8
У меня что-то таймер не останавливается..[miTimer.invalidate]
код в студию
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
24.06.2014, 13:21 #9
ну в принципе код почти тот же, только немного изменен

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import UIKit
 
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        Timer1()
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    func Timer1() {
        var timer1 = NSTimer.scheduledTimerWithTimeInterval(1.5, target:self, selector: "myMetod1", userInfo: nil, repeats: true)
        [timer1.invalidate] 
        timer1 = nil
        
        Timer2()
    }
    
    func Timer2() {
        var timer2 = NSTimer.scheduledTimerWithTimeInterval(1.5, target:self, selector: "myMetod2", userInfo: nil, repeats: true)
        
        [timer2.invalidate]
        timer2 = nil
    }
    
    
    func myMetod1() {
        println("lalala")
    }
    
    func myMetod2() {
        println("blablabla")
    }
}
и еще, как мне обратиться из функции Timer2 например к объекту timer1?
0
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
24.06.2014, 13:33 #10
var timer1 = NSTimer.scheduledTimerWithTimeInterval(1.5, target:self, selector: "myMetod1", userInfo: nil, repeats: true)
[timer1.invalidate]
что это? таймер создается и сразу же останавливается, кстати после invalidate таймер уже 2 раз не запустить
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
24.06.2014, 13:47 #11
Цитата Сообщение от noname_club Посмотреть сообщение
что это? таймер создается и сразу же останавливается, кстати после invalidate таймер уже 2 раз не запустить
в том-то и дело, что он не останавливается. Я специально привел такой код, что бы понять это)
0
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
24.06.2014, 13:57 #12
есть подозрения что он там еще вообще не готов останавливаться
есть подозрения что очередь операций swift по другому обрабатывается
так в objc все нормально
Objective-C
1
2
3
4
5
6
7
8
9
-(void)viewWillAppear:(BOOL)animated {
    
    NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval:1.5f target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
    [timer invalidate];
}
 
-(void) timerAction {
    NSLog(@"timer action");
}
если закоментировать [timer invalidate], то таймер будет тикать
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
24.06.2014, 14:06 #13
Цитата Сообщение от noname_club Посмотреть сообщение
есть подозрения что очередь операций swift по другому обрабатывается
Хорошо, как тогда попробовать выполнить остановку таймера из другой функции?
0
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
24.06.2014, 14:11 #14
Хорошо, как тогда попробовать выполнить остановку таймера из другой функции?
Objective-C
1
2
3
-(void) timerAction:(NSTimer*) sender {
    [sender invalidate];
}
скорее всего invalidate все же работает но не в том блоке когда где таймер непосредственно создается.
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
24.06.2014, 14:32 #15
Objective-C
1
2
3
var  timer1 = NSTimer.scheduledTimerWithTimeInterval(1.5, target:self, selector: "myMetod1", userInfo: nil, repeats: true)
        
        timer1.invalidate()
вот так все останавливается

Добавлено через 13 минут
Тем более что это:
Objective-C
1
[timer1.validate]
Вы вообще в курсе что вы делаете
Создаете массив а не метод вызываете.
вот так вызывать метод надо:
Objective-C
1
timer1.validate()
конечно оно не будет работать, лол
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2014, 14:32
Привет! Вот еще темы с ответами:

Задержка между запуском программ - Delphi
подскажите пожалуйста!!!!!!!!! вопрос такой : есть кнопка по ней вызываются два экзешника как сделать так чтобы экзешники запускались с...

задержка между запросами к url - Python
Здравствуйте господа! Сегодня начал собирать ссылки из поисковой выдачи мейл.ру. И судя по всему меня там заблокировали, не совсем меня ,...

задержка между запусками BackgroundWorker'ов - Visual Basic .NET
Всем доброго времени суток в следующем коде два BackgroundWorker'а пишут в ListBox процент своего выполнения(с задержкой 1 секунда) ...

Proxy. Задержка между запросами - Node.js
Мы используем API, который имеет лимит 1 запрос/секунду. Запросы идут из нескольких мест. Может есть какое-то готовое решение proxy...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.06.2014, 14:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru