Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何区分转换为NSData的NSString对象和转换为NSData的UIImage对象_Iphone_Objective C - Fatal编程技术网

Iphone 如何区分转换为NSData的NSString对象和转换为NSData的UIImage对象

Iphone 如何区分转换为NSData的NSString对象和转换为NSData的UIImage对象,iphone,objective-c,Iphone,Objective C,我正在开发一个应用程序,在该应用程序中,我将向对等方发送一个字符串(在将其转换为NSData对象之后),并通过转换为NSData对象再次发送一个UIImage 现在在接收端我有一个接收方法 - (void) receiveData:(NSData *)data fromPeer:(NSString *)peer inSession:(GKSession *)session context:(void *)context 我

我正在开发一个应用程序,在该应用程序中,我将向对等方发送一个字符串(在将其转换为NSData对象之后),并通过转换为NSData对象再次发送一个UIImage

现在在接收端我有一个接收方法

- (void) receiveData:(NSData *)data
            fromPeer:(NSString *)peer
           inSession:(GKSession *)session
             context:(void *)context
我的问题是,每次我发送任何数据时都会调用相同的接收方法,并且我必须以不同的方式使用图像和文本数据

所以我怎么知道,我收到的数据是转换成NSData的NSString对象,还是转换成NSData的UIImage数据


请帮助我。

最简单的方法是在ReceiveData中定义另一个参数(ofType),用于区分发送的数据类型:

(void) receiveData:(NSData *)data ofType: (bool type) fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context 

最简单的方法是在ReceiveData中定义另一个参数(ofType),用于区分发送的数据类型:

(void) receiveData:(NSData *)data ofType: (bool type) fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context 
context
参数应该是发送的任意数据,为发送的数据提供上下文或含义。它可以是任何转换为数据的东西,甚至是复杂的对象

在这种情况下,一个简单的布尔值就可以了

以上是不正确的。接收方设置上下文以区分多个会话或对等点。-TechZen

假定
上下文
参数是发送的任意数据,为发送的数据提供上下文或含义。它可以是任何转换为数据的东西,甚至是复杂的对象

在这种情况下,一个简单的布尔值就可以了


以上是不正确的。接收方设置上下文以区分多个会话或对等点。-TechZen

看看苹果公司的
GKRocket
示例代码,特别是
sendData:ofType
receiveData:fromPeer:inSession:context:
in的实现。您需要定义一组特定于您的应用程序的“类型”,并将它们作为
NSData
有效负载中的标题发送,然后读取接收端的标题,以确定如何适当处理有效负载。

看看苹果的
GKRocket
示例代码,特别是在中的
sendData:ofType
receiveData:fromPeer:inSession:context:
的实现。您需要定义一组特定于应用程序的“类型”,并将它们作为
NSData
payload中的标题发送,然后读取接收端的标题,以确定如何适当处理有效负载。

我找不到您。在这两种情况下,我都发送一个NSData对象。您所说的dataofType是什么意思?请详细说明。因为在任何情况下,我都会接收相同类型的对象。我找不到您。在这两种情况下,我都发送一个NSData对象。您认为呢是指dataofType吗?请您详细说明一下。因为在任何情况下,我都会收到相同类型的object.NSError*er=[[NSError alloc]initWithDomain:@“anurag”代码:123用户信息:nil];[mSession sendDataToAllPeers:myData with DataMode:GKSendDataReliable错误:&er];这是我在发送数据时使用的。我如何在其中使用上下文?对不起,我的错误是,
context
由接收方设置为打开,以传递给其自己的代理。它显然是为了区分多个会话。NSError*er=[[NSError alloc]initWithDomain:@“anurag”代码:123用户信息:nil];[mSession sendDataToAllPeers:myData with DataMode:GKSendDataReliable错误:&er];这是我在发送数据时使用的。我如何在其中使用上下文?对不起,我的错误是,
context
由接收方设置为打开,以传递给其自己的代理。它显然是为了区分多个会话。