使用 GameKit 崩溃通过蓝牙发送数据

Posted

技术标签:

【中文标题】使用 GameKit 崩溃通过蓝牙发送数据【英文标题】:Send data over Bluetooth using GameKit crash 【发布时间】:2010-11-05 03:25:00 【问题描述】:

我正在尝试使用以下方法通过 GameKit 蓝牙发送简单数据。但是,当我的 2 台设备成功连接并点击发送按钮时,它只会在显示“EXC_BAD_ACCESS”的最后一行崩溃。知道有什么问题吗?

- (IBAction)sendAction:(id)sender 
    // convert an NSString to NSData
    NSString *str = @"Yahooooo!!";
    NSData *data = [str dataUsingEncoding: NSASCIIStringEncoding];
    [currentSession sendDataToAllPeers:data withDataMode:GKSendDataReliable error:nil];

【问题讨论】:

【参考方案1】:

您可能没有正确管理 currentSession 变量的保留计数。假设 currentSession 是一个成员变量,当你分配给 currentSession 时,如果它没有被称为 alloc 或 copy 的方法返回,你需要保留它直到你完成它,此时你应该释放它。

您应该查看内存管理编程指南:

http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html

【讨论】:

以上是关于使用 GameKit 崩溃通过蓝牙发送数据的主要内容,如果未能解决你的问题,请参考以下文章

iOS gamekit/蓝牙数据流

在 iPhone 上以编程方式打开蓝牙

发送 iOS GameKit 消息所需的时间

使用 gameKit 框架连接多个设备

IOS 蓝牙(GameKitCore Bluetooth)

安卓开发蓝牙接收数据,返回数据如何处理