При нажатии кнопки внутри события не всегда срабатывает

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

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

Я попробовал это:

override func viewDidLoad() {

    self.initNetworkCommunication() 
    self.button.sendActionsForControlEvents(UIControlEvents.TouchUpInside)
    var indexSet = NSIndexSet(index: 0)
    self.table.reloadSections(indexSet, withRowAnimation: UITableViewRowAnimation.Automatic)

    self.table.reloadData()
     super.viewDidLoad()

}
func initNetworkCommunication() {
    var readStream:Unmanaged<CFReadStream>?;
    var writeStream:Unmanaged<CFWriteStream>?     ;

    CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault,"localhost",8023,&readStream,&writeStream)

    inputStream = readStream!.takeUnretainedValue()
    outputStream = writeStream!.takeUnretainedValue()

    self.inputStream!.delegate=self
    self.outputStream!.delegate = self

    self.inputStream!.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
    self.outputStream!.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)

    self.inputStream.open()
    self.outputStream.open()


    var msg = "iam:\(self.name).groupView\r\n" //i connect to the server in this view
    var ptr = msg.nulTerminatedUTF8
    var res = outputStream.write(msg, maxLength:msg.lengthOfBytesUsingEncoding(NSASCIIStringEncoding))

}
 @IBAction func getGroups(sender : UIButton) {
    println("it is pressed")

    var msg = "mygroups:\(self.name):sdadsa"
    var res = outputStream.write(msg, maxLength: msg.lengthOfBytesUsingEncoding(NSASCIIStringEncoding))

}

У меня проблема в том, что в некоторых случаях срабатывает событие touchUpInside, и я получаю нужное сообщение от сервера, в противном случае это не так

Сначала я подумал, что это происходит потому, что сервер получает слишком много сообщений одно за другим и "загружается", но почему это иногда работает?

Любые идеи или мнения мне очень помогут

0 ответов

Другие вопросы по тегам