Вы ссылаетесь на oQuota
из функции C (это тоже статично, но это не проблема). Ваша переменная oQuota
находится только "в области видимости" внутри реализации методов Objective C для вашего NetTestAppDelegate
:
void myCFunction()
{
// oQuota cannot be referenced here.
}
@implementation NetTestAppDelegate
- (void)myObjectiveCMethod
{
// oQuota is in scope, can reference it.
}
@end
Но то, что вы можете сделать, это передать объект обратному вызову:
static void TCPServerConnectCallBack(CFSocketRef socket, CFSocketCallBackType type, CFDataRef address, const void *data, void *info){
memset(
&((NetTestAppDelegate *)info)->oQuota,
0,
sizeof(((NetTestAppDelegate *)info)->oQuota)
);
// Not sure whether the sizeof works, try it.
}
В вашем CFSocketContext
вам необходимо установить:
myCFSocketContext.info = self;