Objective c 返回字典泄漏导致崩溃

Objective c 返回字典泄漏导致崩溃,objective-c,memory-management,memory-leaks,ios4,Objective C,Memory Management,Memory Leaks,Ios4,我对这样的财产对象感到困惑 NSMutableDictionary* spradSettingValueByLinkcode; @property (nonatomic, retain) NSMutableDictionary * spradSettingValueByLinkcode; 然后在.m文件中合成 @synthesize spradSettingValueByLinkcode = _spradSettingValueByLinkcode; 然后我使用这个属性来设置函数返回的值

我对这样的财产对象感到困惑

NSMutableDictionary* spradSettingValueByLinkcode;
@property (nonatomic, retain) NSMutableDictionary * spradSettingValueByLinkcode;
然后在.m文件中合成

@synthesize spradSettingValueByLinkcode =   _spradSettingValueByLinkcode;
然后我使用这个属性来设置函数返回的值

_spradSettingValueByLinkcode = (NSMutableDictionary*)[_dbObject initWithSpraderSetting:inputLinkcode];
问题是

1) 在表视图中使用字典时,我分配但不保留属性

2) 如果我分配

_spradSettingValueByLinkcode = [[NSMutableDictionary alloc] initWithDictionary:[_dbObject initWithSpraderSetting:inputLinkcode]];
然后我无法发布,因为应用程序崩溃,如果我不发布,则内存泄漏

所以,下面的代码,如果为我工作是完美的,但我看不正确,所以我需要问我做的是对的还是错的

// This Method use for Load View of SpreaderSettings
- (void) loadSpreaderSettingsValues:(NSString*)inputLinkcode {

    [_spradSettingValueByLinkcode removeAllObjects]; 
    if (!_dbObject) [self loadDBAccessDatabase];

    [_spradSettingValueByLinkcode release]; // relase the previos retain object to maintain count 1
    _spradSettingValueByLinkcode = (NSMutableDictionary*)[_dbObject initWithSpraderSetting:inputLinkcode];
    [_spradSettingValueByLinkcode retain];
    [_productAnalysisTitleLabel setTitle:[_spradSettingValueByLinkcode objectForKey:@"description"]];
    [_TBSpreaderSetting reloadData];
}

- (DBAccess *) loadDBAccessDatabase {
    // NSLog(@"%s", __FUNCTION__);

    _dbObject = [DBAccess sharedDBObjectAccess];
    return _dbObject;
}

应用程序崩溃时是否会打印有用的消息?您能否解释一下
[\u dbObject initWithSpraderSetting:inputLinkcode]
?为什么不像
[[SomeClass alloc]initWithSpraderSetting:inputLinkcode]
崩溃日志是正常的,就像CfDictionAny对象被解除分配一样?对于_dbObject,它是一个共享对象,我也在其他控件中使用。我了解mydbclass返回自动释放字典和我的属性对象尝试保留它这样的过程,否则对象将获得释放,但即使我使用字典分配对象并使用自动释放,应用程序也会崩溃,所以我想,因为这个方法调用了几次,所以首先我解除对象,然后分配,但我觉得这很糟糕,我想再问一个问题,我有一个属性,比如数组,我们通常在dealloc方法中释放,所以如果我有一个函数调用了多次,我使用[[NSArray alloc]initWithArray:(数组)]所以对象计数总是增加?我知道当一个事件完成dealloc方法调用时,这是使用代码的正确方法吗?