当在类外部使用NSMutableDictionary类型的属性时,我不能添加对象。
这是class.h文件
@interface cSummary : NSObject
{
@public
NSMutableDictionary* PaymentMethodSalesTotals;
}
@property (nonatomic, retain) NSMutableDictionary* PaymentMethodSalesTotals;
@endclass.m文件如下所示
#import "cSummary.h"
@implementation cSummary
@synthesize PaymentMethodSalesTotals;
#pragma mark -
#pragma mark Initialisation
-(id)init
{
return [super init];
PaymentMethodSalesTotals = [[ NSMutableDictionary alloc] init];
[PaymentMethodSalesTotals setObject:[NSNumber numberWithFloat:0.0f] forKey:[NSNumber numberWithInt:10]];
[PaymentMethodSalesTotals setObject:[NSNumber numberWithFloat:0.0f] forKey:[NSNumber numberWithInt:20]];
[PaymentMethodSalesTotals setObject:[NSNumber numberWithFloat:0.0f] forKey:[NSNumber numberWithInt:30]];
}
#pragma mark -
#pragma mark Memory management
- (void)dealloc
{
if (PaymentMethodSalesTotals != nil)
[PaymentMethodSalesTotals release];
[super dealloc];
}
@end然后在另一个类中使用,如下所示
cSummary* oSummary = [[cSummary alloc] init];
NSNumber* numPrice = [NSNumber numberWithFloat:150.0f];
[oSummary.PaymentMethodSalesTotals setObject:numPrice forKey:[NSNumber numberWithInt:10]];如果我在debug中看到这一点,PaymentMethodSalesTotals集合中是否仍然没有值?
发布于 2010-09-24 19:08:30
在init中,首先返回,这样字典就不会被分配/实例化。将返回值移动到方法的末尾。
-(id)init
{
return [super init]; //!!!!!!!!!!!!
PaymentMethodSalesTotals = [[ NSMutableDictionary alloc] init];
....
}https://stackoverflow.com/questions/3786367
复制相似问题