NSMutableArray * lCellColValues = (NSMutableArray * ) nil;
lCellColValues = [[[NSMutableArray alloc] init] autorelease];
if (0 == lSecModulus) {
if cObjTransListPtr.count > 0 && lObjTransData.m_cObjSDElemInfoPtr.count > 0) {
[lCellColValues addObject: lObjTransData.m_cObjTransNamePtr];
[lCellColValues addObject: [[NSNumber numberWithInteger: lObjTransData.m_cTransCounter] stringValue]];
} else {
if (nil != lObjSDElemInfo.m_cObjStartTimePtr) {
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"HH:mm:ss";
[dateFormatter setTimeZone: [NSTimeZone timeZoneForSecondsFromGMT: 0.0]];
NSString * myDateAsString = [dateFormatter stringFromDate: lObjSDElemInfo.m_cObjEndTimePtr];
[lCellColValues addObject: myDateAsString];
SAFE_RELEASE(dateFormatter)
} else {
[lCellColValues addObject: @""];
}
[lCellColValues addObject: [[NSNumber numberWithDouble: lObjSDElemInfo.m_cElementTime] stringValue]];
}
}
if ((CustSplitCell * ) nil == lObjCellPtr) {
if (m_cObjTransListPtr.count > 0) {
lObjCellPtr = [[[CustSplitCell alloc] initWithStyleAndTitles: UITableViewCellStyleDefault reuseIdentifier: lObjCellIdentifier titles: lCellColValues rowNumber: indexPath.row] autorelease];
} else {
[lCellColValues addObject: @""];
lObjCellPtr = [[[CustSplitCell alloc] initWithStyleAndTitles: UITableViewCellStyleDefault reuseIdentifier: lObjCellIdentifier titles: lCellColValues rowNumber: indexPath.row] autorelease];
}
}
質問する
134 次
1 に答える
1
多分これはあなたを助けるかもしれません: http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/MemoryMgmt/Articles/MemoryMgmt.html
必要に応じて autorelease を使用し、必要に応じて保持するなどを確認する必要があると思います。自動解放せずに alloc/init を使用するだけの場合は、作業が完了した後に参照できるようにする必要があります。自分で解放してください。この方法で物事を行うと、そのオブジェクトの完全な所有権を取得します。これはすべて、リンク先のルールでカバーされています。
この回答は、この質問のコメントのコピーであることに注意してください:配列内のオブジェクトのメモリリーク
于 2012-10-30T15:38:48.520 に答える