我想知道如何将指向结构的指针传递给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
{
}
答案 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)];
这不是架构独立的。