2010-09-24 62 views
0

在類的外部使用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集合仍然沒有值嗎?

回答

2

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

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

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

哈哈哈,哦,我的天哪,非常尷尬,是的,就是這樣,有時我看不到樹木。我會盡快接受你的回答:$ – 2010-09-24 11:11:49

相關問題