objc [23601]:クラス__NSCFSetのオブジェクト0x12b090f0が自動リリースされ、プールが配置されていません-リークしているだけです-objc_autoreleaseNoPool()で中断してデバッグします
次のコードセクションで上記のリークエラーが出力されるのはなぜですか?
+ (BOOL)getSkipFlag
{
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
if ( ![defs objectForKey:_BOOK_ID] )
{
[defs setObject:@"yyyy" forKey:_BOOK_ID];
[defs synchronize];
}
if ( ![[defs objectForKey:_BOOK_ID] isEqualToString:@"xxxx"] )
{
return NO;
}
return skipFlag;
}
利用方法
if ( ![ClassXYZ getSkipFlag] )
....
新しいスレッドを使用しないので、新しい自動解放プールを設定する必要はありません。
注:NSString *temp = [[NSBundle mainBundle] pathForResource:_CONFIG_PLIST ofType:@"plist"];
-iOS5.1を使用しているのと同じエラーが出力されます
洞察をありがとう。
更新:ClassXYZ.m ... static BOOL skipFlag = NO;
セッター:+(void)setSkipFlag:(BOOL)boolValue {skipFlag = boolValue; }
使用法:[ClassXYZ setSkipFlag:YES];
static void convert_uri_to_file_name(struct mg_connection * conn、const char * uri、char * buf、size_t buf_len)で使用されます
オマールあなたはそれがどこで使われるかについて良い点を持っていました。たとえば、I ClassXYZ独自のインスタンスメソッドを使用すると、エラーなしで機能することがわかります。