Carbon的TISInputSourceRef内存泄漏

时间:2015-01-08 04:23:31

标签: objective-c cocoa memory-leaks macos-carbon

我在一个可可项目中使用TISInputSourceRef(使用ARC),我无法弄清楚探查器报告内存泄漏的原因。

泄漏:

memory leak

守则:

的InputSource

+ (NSDictionary *)current {
    TISInputSourceRef source = TISCopyCurrentKeyboardInputSource();
    NSDictionary *build =  @{
                           @"name":   (__bridge NSString*)TISGetInputSourceProperty(source, kTISPropertyLocalizedName),
                           @"layout": (__bridge NSString*)TISGetInputSourceProperty(source, kTISPropertyInputSourceID)
                           };
    CFRelease(source);
    return build;
}

UserDefaultsManager 实际通话

+ (void)registerDefaults {
    NSDictionary *currentInputSource = [InputSource current];
    [[NSUserDefaults standardUserDefaults] registerDefaults:@{
                                                                  kDefaultLayout: @{@"layout": currentInputSource[@"layout"]}
                                                              }];
}

我尝试使用CFBridgingRelease代替__bridge,复制currentInputSource[@"layout"]而不是仅仅分配它并合并两种方法而没有运气。

我该如何解决这个漏洞? (或......我应该吗?)

谢谢!

0 个答案:

没有答案