通过游戏中心发送 NSString

2023-12-30

我想通过 Gamecenter 将 NSString 从另一台 iPhone/iPad 发送到另一台 iPhone/iPad 但它因 EXC_BAD_ACCESS 崩溃

在 .h 文件中

typedef enum {
    kMessageTypeRandomNumber = 0,
    kMessageTypeGameBegin,
    kMessageTypeSubmit,
    kMessageTypeExchange,
    kMessageTypePickup,
    kMessageTypePass,
    kMessageTypeGameOver
} MessageType;

typedef struct {
    MessageType messageType;
} Message;

typedef struct {
Message message;
NSString *submitTile;
} MessageSubmit;

在 .m 文件中

- (void)sendData:(NSData *)data {
    NSError *error;
    BOOL success = [[GCHelper sharedInstance].match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable error:&error];
    if (!success) {
        CCLOG(@"Error sending init packet");
        [self matchEnded];
    }
}
-(void)sendSubmit:(NSString *) submitTile {
    MessageSubmit message;
    message.message.messageType = kMessageTypeSubmit;
    message.submitTile = submitTile;
    NSData *data = [NSData dataWithBytes:&message length:sizeof(MessageSubmit)];    
    [self sendData:data];
}

如果我点击 CCMenu 图像,它将调用 onSubmit 函数 这是 onSubmit 函数

-(void)onSubmit
{
    NSString *submitStr = @"1-7-7 =-7-8 1-7-9";

    [self sendSubmit:submitStr];
}

最后一个是didReceiveData方法

- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID {
    if (message->messageType == kMessageTypeSubmit) {
        MessageSubmit * messageSubmit = (MessageSubmit *) [data bytes];
        NSString *submitStr = messageSubmit->submitTile;

        NSLog(@"SubTile %@",submitStr);
    }
}

它有 EXC_BAD_ACCESS 在线NSString *submitStr = messageSubmit->submitTile;.

有没有办法通过 iPhone/iPad 发送 NSString 消息?


你不能这样做:

NSData *data = [NSData dataWithBytes:&message length:sizeof(MessageSubmit)];    

...或这个:

MessageSubmit * messageSubmit = (MessageSubmit *) [data bytes];

一般来说,您不能只按原样发送对象的内存中表示形式。例如,submitTile该类的实例变量是一个指向NSString目的。当您通过网络发送数据时,您不是在发送字符串本身,而是在发送指针 - 这只是发送设备上的一块内存的内存地址。接收设备不会在任何地方存储相同的字符串,即使有,它也不会有相同的内存地址。所以你有一个无意义的指针指向任何地方,并且你期望它指向一个不存在的字符串。

做你想做的事最简单的方法就是让你的MessageSubmit class NSCoding- 符合。将其序列化为NSData而不仅仅是复制字节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过游戏中心发送 NSString 的相关文章

  • 将 Objective-C 框架 (CocoaPod) 导入 Swift?

    我正在尝试导入libjingle peerconnection框架到我的 Xcode 项目中 但由于某种原因 我无法使用以下命令导入 Objective C 标头import RTCICEServer在 Swift 源文件中 我尝试使用头文
  • 去除iOS输入阴影

    在 iOS Safari 5 上 我必须遵循输入元素 顶部内部阴影 我想删除顶部阴影 错误 webkit appearance不保存 目前的风格是 input border radius 15px border 1px dashed BBB
  • UITableView 自动调整行大小约束在 iPhone 6Plus 上神秘破坏

    我有一个自定义的 UITableViewCell 它有一个缩略图和一堆文本 行高配置为使用自动计算 tableView estimatedRowHeight 129 tableView rowHeight UITableViewAutoma
  • iOS:启动图像多语言

    我有一个多语言应用程序 我的问题是启动图像 根据设备的语言使用启动图像的方法是什么 有什么东西在info plist file 解决方案是像项目中的任何其他资源一样本地化 Default png 从 Xcode 的项目列表中选择 Defau
  • 如何检测文本是否可读?

    我想知道是否有一种方法可以告诉给定的文本是人类可读的 我所说的人类可读的意思是 它有一些含义 格式就像某人写的文章 或者至少是由软件翻译器生成的供人类阅读的文章 这是背景故事 最近我正在制作一个应用程序 允许用户将短文本上传到数据库 在部署
  • 既然 Gradle 和 Maven 都弃用了 http,如何使用 Liferay Mobile SDK 6.2.18 生成 jar 库?

    在我当前的项目中 我们正在维护 开发使用客户网站 liferay 6 2 服务的移动 android iOS 应用程序 每当后端的人员生成新服务 或者只是将现有服务更新为具有新功能的新版本 时 我们需要使用 Liferay Mobile S
  • 如何在 swift 3 中的表视图单元格中实现集合视图的分页?

    在这里 我有一个布局 其中我的表视图单元格之一由集合视图组成 在这个布局中我需要实现分页 但我无法使用func collectionView collectionView UICollectionView willDisplay cell
  • 以编程方式显示 UIView

    我试图 通过动画 显示 UIView 具体来说 我想显示视图的中心部分 然后慢慢地显示它的外边缘 有点像拉开窗帘 我的第一次尝试是简单地将边界矩形设置得更小 并将其动画化为视图框架的完整大小 但这没有达到预期的效果 因为通过更改边界 我也更
  • UIButton 未出现在 iPhone 5S 上

    总的来说 我对 iOS 开发和开发还很陌生 我一直在开发时间 记录保存应用程序 但遇到了一个奇怪的问题 在我的一个视图控制器上 我有一个 UITableView 每个单元格都是一个按钮 可通往不同的视图控制器 在第一个单元格上 用户应该能够
  • 块执行后变量返回 null

    我正在调度一个队列来在单独的线程上下载一些 flickr 照片 在 viewWillAppear 中 当我记录块内数组的内容时 它完美地显示了所有内容 dispatch queue t photoDowonload dispatch que
  • 从 ios 和 android 端连接到 xmpp 时获取所有群组消息

    我在用开放火版本 4 0 1 使用开火Rest Api https github com gidkom php openfire restapi我在服务 servicename xx xx xxx xxx 中创建了群聊室 现在房间已创建 发
  • iOS 意外的平台状况(预期的“os”、“arch”或“swift”)-可达性

    我刚刚更新了我的 pod 更新后Reachability导致错误 意外的平台状况 预期的 os arch 或 swift I tried to build and clean but it does not work what s the
  • 平滑地将渐变应用于 UIImage

    我正在尝试使用 CoreGraphic 将渐变应用于 UIImage 然而 我得到的结果不是很好 我想在图像底部创建一个黑色到透明的渐变 以便为我放置一些文本创建对比度 然而 我能够实现的渐变与图像不能很好地融合 你可以清楚地看到中心的分离
  • 无法转换“String”类型的值?预期参数类型“URL”

    我正在尝试从主包中的文件加载数据 当我使用这段代码时 let path Bundle main path forResource abc ofType txt let dataTwo try Data contentsOf path err
  • 这是 NSDateFormatter 风格 12 月 18 日星期五

    我想知道这个日期格式是什么Friday December 18th这也是标准的日期格式 或者我必须付出一些努力才能得到这个 Thanks 我不认为th可以通过格式化程序来实现 虽然你可以这样做 NSDate today NSDate dat
  • 在 xCode 6 中发现意外的 Mach-O 标头代码:1918975009

    导致错误的原因是什么 Found an unexpected Mach O header code 1918975009 in xCode 6 我将我的项目存档并作为ad hoc构建并且它构建 链接 存档很好但是当我在xCode组织者和选择
  • UIWebView stringByEvaluatingJavaScriptFromString 在后台

    在 iOS 应用程序中 我正在运行一个相当大的脚本UIWebView using stringByEvaluatingJavaScriptFromString 就 JavaScript 字符串的长度而言较大 调用 JavaScript 后会
  • EXC_BAD_INSTRUCTION 的 CoreData 错误(代码=EXC_I386_INVOP,子代码=0x0)

    当我打开并发调试开关 com apple CoreData ConcurrencyDebug 1 来跟踪 CoreData 的所有并发问题时 在调用 insertingNewObjectForEntityForName 时不断发生崩溃 Xc
  • 使用 MKPolyline 在地图上绘制用户路线

    我对 Objective c 还很陌生 在我的应用程序中 我试图将用户采取的路线绘制到地图上 到目前为止 这是我仅获取用户当前位置的内容 import StartCycleViewController h import CrumbPath
  • 如何在没有 Xcode 的情况下提交 iOS 应用程序?

    我是一名合同开发商 我已经为客户编写了一个应用程序 是的 使用 Xcode 现在我们准备发货了 我想向他发送一份应用程序副本 他可以签署该副本并将其提交到 iTunes 应用程序商店 但是他没有或没有使用 Xcode 虽然这是一个备份计划

随机推荐

  • 检测 Mono 中的符号链接和管道

    有没有办法使用 C 和 Mono 来区分特殊文件 例如符号链接和管道 该应用程序是一个多平台备份工具 因此我想避免使用互操作库或 C DLL 并寻找直接托管代码解决方案 经过更多研究后 我找到了解决方案 添加参考MonoPosix项目可以访
  • 图像未保存在文件夹中

    我正在尝试创建一个文件夹并在其中保存图像 但这不起作用 我不知道我的代码出了什么问题 你能告诉我为什么吗 The method that invoke of uploading images public void openGallery
  • 将 QLineEdit 设置为仅接受数字

    我有一个QLineEdit用户应仅输入数字 那么是否有一个仅限数字的设置QLineEdit QLineEdit setValidator 例如 myLineEdit gt setValidator new QIntValidator 0 1
  • Microsoft 的 CodeView 格式规范

    我一直在寻找 1990 年代的 Microsoft 文档 名为CodeView 符号调试信息规范 微软在他们的文章中引用了它PE COFF规格 http elfz laacz lv ms exe spec html L61 关于该文档的信息
  • 如何通过VSTS构建和部署SSRS项目?

    我在 VS2015 中创建了简单的 SSRS 项目 我想通过创建构建定义和发布定义步骤来使用 VSTS 构建和部署 SSRS 项目 是否有任何第三方 VSTS 扩展可用 或者对于 SSRS 构建和 SSRS 部署与 SSIS 构建和 SSI
  • 子类化流

    我有兴趣创建自己的 Stream 子类 并且想知道应该重写哪些方法 部署在 pharo 和 Gemstone 上 我有一个包含各种类型事物的集合 我希望能够流式传输它的子集 其中包含类的元素 我不想复制集合或使用collect 块 因为集合
  • 在 CAB 中部署 C# ActiveX 以供 Internet Explorer 使用

    我正在拼命尝试部署一个用 C 开发的 IE 的 ActiveX 作为 CAB 存档 我阅读了很多资源 其中一些来自 StackOverflow 似乎很多人都遇到了同样的问题 我尝试了 3 种解决方案 a 创建 CAB VS 项目 b 使用手
  • SQL Server 2005:读提交事务隔离级别中的键范围锁?

    我正在帮助解决使用 SQL Server 2005 的 NET 应用程序中的一些死锁问题 我从下面的跟踪中获得了 XML 数据 真正让我困惑的是 RangeX X 锁定PK Exp Experience PriorFirm当事务隔离级别为读
  • Android 图像的 AES 加密/解密

    我需要找到一种在 Android 中加密 解密图像的方法 我是 Android 编程新手 从未在任何其他平台上加密 解密过 所以请给我一个很好的例子 因为我需要学习如何做到这一点 我正在开发一个需要加密 解密图像的项目 如果您能帮助我解决这
  • 如何在Excel中使用vba访问xml中的特定元素和属性?

    我正在努力让 Excel 解析 xml 文件 我找到了大量的示例 但似乎没有一个完全符合我的要求 而且我似乎无法克服错误 对象变量或未设置块变量 该 xml 格式良好 如下所示
  • 如何在绘图上绘制带注释的热图?

    我正在尝试制作一个带注释的热图 import plotly plotly as py import plotly tools as tls from plotly graph objs import import numpy as np i
  • PHP 单行语句中的 Netbeans 代码格式大括号

    Intro 我正在开发 PHPNetBeans IDE 7 2 Build 201207171143 我喜欢formatting以我的自定义格式清理我的代码 目前我与同事在一个小组中工作 我的一些同事习惯于编写不带大括号的单行语句 我认为这
  • 将 C 字符串转换为双精度数或从双精度数转换时出现奇怪的行为

    我无法理解 C 的规则 即在打印双精度数或将字符串转换为双精度数时应采用何种精度 下面的程序应该可以说明我的观点 include
  • 视图控制器有时收不到 NSNotification

    所以 我只是在各种情况下测试 NSNotifications 而这个令人困惑 如果您能帮助我理解 NSNotifications 我将不胜感激 我有一个导航控制器 我有一个名为 Add 的 UIBarButtonItem 它发布通知 Did
  • PHP regex - 检测未闭合的括号

    我需要检测字符串是否包含任何未闭合的尖括号 我试图通过比较左括号和右括号的数量来避免使用正则表达式 if substr count string lt substr count string gt Text contains unclose
  • python字节码中的加载名称和加载全局有什么区别?

    load name 接受其参数 并将 store name 存储的名称值推入堆栈 该值由参数指示的位置存储 load global 做了类似的事情 但字节码中似乎没有 store global 那么有什么区别以及如何加载全局工作 和 之间的
  • 在 LLDB 中保存断点

    如何在 lldb 中保存断点 这是 gdb 具有的功能 我怀疑 lldb 也具有它 但我无法在帮助中找到它 这是如何在 gdb 中完成的 让 gdb 保存断点列表 https stackoverflow com questions 5014
  • 社交图标无法与 WordPress 上的无限滚动一起使用

    我们正在为工作中的客户制作一个网站 可以在这里找到 http ethercreative net studio social http ethercreative net studio social 这是一个非常简单的 WordPress
  • UITableViewCell:允许选择性删除

    我有一个表视图并希望允许对所有单元格重新排序 但是我不希望删除某些单元格 当 UiTableView 进入删除模式时 我不希望红色 按钮出现在左侧 并且不希望滑动手势调出这些单元格的 删除 按钮 但希望其他单元格也出现这种情况 有任何想法吗
  • 通过游戏中心发送 NSString

    我想通过 Gamecenter 将 NSString 从另一台 iPhone iPad 发送到另一台 iPhone iPad 但它因 EXC BAD ACCESS 崩溃 在 h 文件中 typedef enum kMessageTypeRa