所以这就是我想要做的事情
@implementation someHelper
+(BOOL) GetInfo:(NSData **)info1, (NSString**) info2
{
__block _Bool out = NO;
//do stuff to get input
[[Bool result] startSession:input callsBack:^(Abc obj, Bool status)
{
if(status)
{
*info1 = [obj.Data1 subdataWithRange:NSMakeRange(0,2);
*info2 = obj.string1;
out = true;
}
else
out = false;
}];
return out
}
调用看起来像
NSString *a;
NSData *b;
output = [someHelper GetInfo:(NSData **)&a (NSString **)&b];
我认为我在这里缺少的是info1
和info2
的实际内存分配。我是Obj C的新手,我不清楚我需要做些什么才能正确分配。
当我尝试
时 NSMutableData *info1 = [NSMutableData dataWithCapacity: 2];
*info1 = [obj.Data1 subdataWithRange:NSMakeRange(0,2);
我明白了
Assigning to NSMutableData from incompatible type NSData
。
有人可以帮助我更好地了解这一点以及如何解决问题吗?
答案 0 :(得分:0)
更有可能startSession:callsBack:
是立即返回的异步方法。在回调块中,您应该将字符串和数据传递给对更新值感兴趣的任何内容。
鉴于Objective-C标准与命名约定和编码模式的距离有多远,我建议还要重新讨论如何使用Objective-C。