私のObjective-Cの経験は良くありません。NSMutableDictionaryを動作させることができません(xcode)
他にもいくつかのコードがありますが、私はこの問題を単純化したと考えています。私は何をしようとしていることは保存することですダブル以下の私のコードで、キーと(のNSNumberにパック):今、このプリント
の.h
@interface MyClass : something
{
MyMap* usemap;
}
@end
@interface MyMap : something
@property (atomic, strong) NSMutableDictionary* mmap;
@end
.M
@implementation MyMap
@class MyClass;
NSMutableDictionary* mmap = [[NSMutableDictionary alloc] init];
@end
@implementation MyClass
MyMap* usemap = [MyMap alloc];
//-void { switch() { case x:
NSString* key = @"testkey";
NSNumber* value = [NSNumber numberWithDouble:1];
NSLog(@"Saving value: %@ to key: %@",value,key);
[usemap.mmap setObject:value forKey:key];
NSNumber* get = [usemap.mmap objectForKey:key];
NSLog(@"Saved value: %@ to key: %@",get,key);
:
Saving value: 1 to key: testkey
Saved value: (null) to key: testkey
何が欠けていますか?それは倍数 '1'を保存していたはずです。
あなたの 'mmap'は初期化されていません。 '@ implementation'の直下にあるコードは意味がなく、実行されていません(少なくとも期待するときは)。コードをイニシャライザまたはいくつかのメソッドに置きます。 – werediver
私はそれを - (void)コンストラクトに移動しました。これは割り当て直後に実行されます。それは助けになりませんでした:/ – user2105624
Okey!それを修正! :私はself.mmap = [[NSMutableDictionary alloc] init]を使用しなければなりませんでした。 allocの後に呼び出されるvoid関数の中にあります。自己なしで。まずそれは動作しませんでした。 – user2105624