如何将结构传递给NSOperation Init

时间:2011-09-15 11:22:16

标签: ios cocoa-touch

我想知道如何将指向结构的指针传递给nsoperation的自定义init方法。它似乎期望传递ID类型的项目。

这可能吗?

typedef struct mystruct

{
   int a;
   int b;

}mystruct;

mystruct myitem;


MyNSOperation *op=[[MyNSOperation alloc]initwithdata:myitem]; //can't do this, not of type id


-(id)initwithdata:(mystruct *)thestruct

{


}

2 个答案:

答案 0 :(得分:1)

您的init方法应如下所示:

-(id)initwithdata:(mystruct)thestruct

{


}

或者您应该传递对您的结构的引用:

MyNSOperation *op=[[MyNSOperation alloc]initwithdata:&myitem];

明智地选择。

答案 1 :(得分:1)

如果要将结构作为对象传递,可以使用NSData

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

并使用

将其恢复为结构
[data getBytes:&myitem length:sizeof(myitem)];

这不是架构独立的。