Форум программистов, компьютерный форум, киберфорум
Swift
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.98/58: Рейтинг темы: голосов - 58, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Подскажите, как сделать, чтобы текст выводился с задеркой (например в одну секунду).
Например:
Код
println("Ла-ла-ла")
//А тут задержка в 1 секунду.
println("Бла-бла-бла")
На самом деле код нечно по другому будет выглядеть (не в консоле будет вывод).
Но мне надо, чтобы вывелся "Ла-ла-ла" и через секунду "Бла-бла-бла".
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2014, 19:48
Ответы с готовыми решениями:

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

Задержка между действиями
Есть такой вот метод: public void move(int x) { while (this.x != x) { /* Ваш код */...

Задержка между командами
Добрый день! я хочу спросить, почему при выполнении кода int y=0; while(1) {...

Задержка между клипами
Здравствуйте. Порылся по форуму, видел несколько вариантов ответо на нужный мне вопрос, но не смог...

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

Добавлено через 3 минуты
И ещё одно.
Objective-C
1
sleep(1)
Как сделать, чтобы задержка была пол секунды, или 0,005 секунды?
0
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
24.06.2014, 10:43 4
dispatch_after - GCD in swift?
http://stackoverflow.com/quest... d-in-swift

How can I use NSTimer in Swift?
http://stackoverflow.com/quest... r-in-swift

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

Добавлено через 6 минут
А как вообще можно находить такие классы?
swift использует теже самые фреймворки что и ObjC
=> методы фреймворков swift идентичны ObjC
=> изучая ObjC == изучению swift, причем материалов по ObjC значительно больше.
0
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 112
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
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
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 112
24.06.2014, 13:05 7
Цитата Сообщение от Xavier Посмотреть сообщение
У меня возник вопрос: а при чем тут swift?
синтаксис другой следовательно и обращение к методам поменялись

если в objc было
Objective-C
1
[myTimer invalidate]
то в swift
Objective-C
1
[miTimer.invalidate]
все же, некоторые действия вводят в заблуждение, а вот примеров и реально работающих исходников с нужными функциями и методами нету. Приходится тыка в ручную, исходя из логики obj-c
вот я и спрашиваю как правильно остановить? У меня что-то таймер не останавливается..
0
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
24.06.2014, 13:08 8
У меня что-то таймер не останавливается..[miTimer.invalidate]
код в студию
0
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 112
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
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
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
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 112
24.06.2014, 13:47 11
Цитата Сообщение от noname_club Посмотреть сообщение
что это? таймер создается и сразу же останавливается, кстати после invalidate таймер уже 2 раз не запустить
в том-то и дело, что он не останавливается. Я специально привел такой код, что бы понять это)
0
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
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
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 112
24.06.2014, 14:06 13
Цитата Сообщение от noname_club Посмотреть сообщение
есть подозрения что очередь операций swift по другому обрабатывается
Хорошо, как тогда попробовать выполнить остановку таймера из другой функции?
0
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
24.06.2014, 14:11 14
Хорошо, как тогда попробовать выполнить остановку таймера из другой функции?
Objective-C
1
2
3
-(void) timerAction:(NSTimer*) sender {
    [sender invalidate];
}
скорее всего invalidate все же работает но не в том блоке когда где таймер непосредственно создается.
0
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
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 112
24.06.2014, 15:14 16
Цитата Сообщение от Xavier Посмотреть сообщение
конечно оно не будет работать, лол
ну в objc все так было
в swift-e поменялось

ну а как остановить таймер например из метода1?
пытаюсь обратиться к timer1, но область видимости не позволяет это сделать.
может есть возможность объявить глобальный таймер? что бы можно было к нему обратиться из любой части класса?
0
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
24.06.2014, 15:32 17
Цитата Сообщение от TexHuK Посмотреть сообщение
ну а как остановить таймер например из метода1?
Вот так например:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
       var  timer1 = NSTimer.scheduledTimerWithTimeInterval(1.5, target:self, selector: "myMetod1:", userInfo: nil, repeats: true)
        // Do any additional setup after loading the view, typically from a nib.
    }
 
    func myMetod1(timer: NSTimer){
        timer.invalidate()
    }
 
}
Цитата Сообщение от TexHuK Посмотреть сообщение
в swift-e поменялось
В таком случае советую все таки для начала с основами синтаксиса ознакомиться, а потом уже с NSTimer-aми и компанией разбираться. Благо литература для этого есть и она достаточно удобная и понятная.
1
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 112
24.06.2014, 15:50 18
Цитата Сообщение от Xavier Посмотреть сообщение
В таком случае советую все таки для начала с основами синтаксиса ознакомиться, а потом уже с NSTimer-aми и компанией разбираться. Благо литература для этого есть и она достаточно удобная и понятная.
ну как бы основы учатся, в принципе нечего сложного, практика тоже нужна, есть только некоторое недопонимание как всегда. Спасибо конечно за пример, только я вот не пойму, а если у меня много таких переменных? Мне их все перечислять в аргументах функции? Т. е. глобального объявления переменных тут не работает?
0
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
24.06.2014, 16:07 19
Нет ну почему же не работает, все работает. Хочешь как глобальную объявляй вне класса, хочешь как свойство класса объявляй, все на твое усмотрение. Просто в данном случае это более традиционный метод.
1
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 112
24.06.2014, 16:46 20
Вот теперь все встало на свои места
0
24.06.2014, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2014, 16:46
Помогаю со студенческими работами здесь

Задержка между выводом изображении
Как сделать задержку между выводом изображении на экран? Чтобы к примеру запускаешь форму, и на ней...

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

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

Задержка между двумя кликами
Что-то задался вопросом а как реализуется задержка между двумя кликами? То есть после первого клика...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru