Какой из них является правильным методом инициализации NSMutableDictionary. Пожалуйста, кто-нибудь поправьте меня здесь - PullRequest
0 голосов
/ 13 февраля 2012

Я пытаюсь создать NSMutableDictionary в моем классе. Я прочитал много постов в stackoverflow, чтобы понять разницу. Но сейчас я совершенно сбит с толку. Так что любой меня поправляет, какой из них является правильным способом инициализации NSMutableDictionary в моем классе. Мне нужно получить доступ к этому диктору во многих областях моего приложения. Поэтому предложите мне хороший способ использования инициализации переменной ...

/// .h file
@interface ActiveFeeds : NSObject {

}
@property (nonatomic, copy) NSMutableDictionary *invDictionary;
@property (nonatomic, retain) NSString *filePath;
@end

@implementation ActiveFeeds

@synthesize filePath;
@synthesize invDictionary;

- (id)init{

    self = [super init];
    if (self != nil){
        NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:self.filePath];
        self.invDictionary = [dictionary mutableCopy];
         dictionary release]; 
    }
    return self;
}

/* And use self.invDictionary all in the application */
- (void)setObjectAtKey:(NSMutableDictionary *)objectDic atKey:(NSString *)setKey{
    [self.invDictionary setObject:objectDic forKey:setKey];
}

- (void)dealloc {
    [self.invDictionary release];
    [self.filePath release];
    [super dealloc];
}

@end

или как это ....

@interface ActiveFeeds : NSObject {
    NSMutableDictionary *invDictionary;
    NSString *filePath;
}
@end


@implementation ActiveFeeds

- (id)init{

    self = [super init];
    if (self != nil){
            NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
            invDictionary = [dictionary mutableCopy];
            [dictionary release];
        }    
    }
    return self;
}

/* And use invDictionary all in the application */
- (void)setObjectAtKey:(NSMutableDictionary *)objectDic atKey:(NSString *)setKey{
    [invDictionary setObject:objectDic forKey:setKey];
}

- (void)dealloc {
    [invDictionary release];
    [filePath release];
    [super dealloc];
}

@end

Пожалуйста, помогите мне найти правильный способ использования переменных ....

1 Ответ

2 голосов
/ 13 февраля 2012
- (id)initWithFilePath:(NSString *)path{

    self = [super init];
    if (self != nil){
       self.filePath = path;
       self.invDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:path]; 
    }
    return self;
}

также

- (void)dealloc {
    [invDictionary release];
    [filePath release];
    [super dealloc];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...