にNULLになるのはなぜ私がバックグラウンドスレッドで動作するC++書かれたライブラリからいくつかのイベントがあります。いつか変数はブロック
virtual void OnData(const char* data)
{
NSLog(@"Here 'data' string is present %s", data);
@autoreleasepool {
NSString* sData= [NSString stringWithCString:data encoding:NSUTF8StringEncoding];
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Here _sometimes_ 'data'(%s) is nil (\0). But sData is always present %@", data, sData);
[callback OnData:sData];
});
};
}
そしてを時々私は、引数にdispatch_asyncブロックにNULL(私は実際にそのゴミを疑う)持っています変数。しかし、ローカルNSString変数は常にここにあります。どうして?
P.S.この状況で実際に@autoreleasepool
を使用する必要がありますか?
これはC++ではありません。 – Barmar
Objective-CとC++が混在 – BugaBuga