iPhone SDk:无法将项目添加到用作类的属性的NSMutableDictionary?

问题描述:

在类的外部使用NSMutableDictionary类型的属性时,我无法添加对象。iPhone SDk:无法将项目添加到用作类的属性的NSMutableDictionary?

这是class.h文件

@interface cSummary : NSObject 
{ 
@public 
    NSMutableDictionary* PaymentMethodSalesTotals; 
} 

@property (nonatomic, retain) NSMutableDictionary* PaymentMethodSalesTotals; 

@end 

的class.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]]; 

如果我在调试中查看这个PaymentMethodSalesTotals集合仍然没有值吗?

在init中,您首先返回,以便字典不被分配/实例化。将返回移动到方法的末尾。

-(id)init 
{ 
    return [super init]; //!!!!!!!!!!!! 

    PaymentMethodSalesTotals = [[ NSMutableDictionary alloc] init]; 
.... 
} 
+0

哈哈哈,哦,我的天哪,非常尴尬,是的,就是这样,有时我看不到树木。我会尽快接受你的回答:$ – 2010-09-24 11:11:49