按钮触摸内部事件不会始终触发

时间:2014-09-17 07:53:18

标签: ios swift uibutton nsstream touch-up-inside

我目前正在开发一个与聊天应用程序非常相似的应用程序,所以我做的是创建自己的服务器,在应用程序中我使用流向服务器发送消息并从中检索消息。

我有许多功能需要在没有按下按钮或其他东西的情况下被触发,例如当我尝试获取我注册的朋友或群组的在线用户时我想获得此命令的结果一个视图已加载,所以我在询问之前有结果

我试过这个:

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 个答案:

没有答案