私は次のように辞書を宣言しています:
@property (weak, nonatomic) NSMutableDictionary *testVariableValues;
@synthesize testVariableValues = _testVariableValues;
次に、次のように辞書にデータを入力します。
- (IBAction)testPressed:(UIButton *)sender {
self.testVariableValues = [NSMutableDictionary dictionary];
if ([sender.currentTitle isEqualToString:@"Test 1"])
{
[self.testVariableValues setObject:[NSNumber numberWithDouble:5.2] forKey:@"x"];
[self.testVariableValues setObject:[NSNumber numberWithInt:-1] forKey:@"y"];
[self.testVariableValues setObject:[NSNumber numberWithInt:1] forKey:@"a"];
} else if ([sender.currentTitle isEqualToString:@"Test 2"]) {
// Continues like this
辞書にデータを入力するたびに、辞書の内容をコマンドラインに出力しているので、その部分が機能していることがわかります。次のような別の方法から辞書にアクセスしようとすると、問題が発生するようです。
if ([self.display.text isEqualToString:@"x"]) {
NSLog(@"%f", [[self.testVariableValues objectForKey:@"x"] doubleValue]);
[self.brain pushOperand:[[self.testVariableValues objectForKey:@"x"] doubleValue]];
このコードブロックのNSLogはnullを返します。これにより、testPressedメソッドの外部から辞書にアクセスできないと思います。誰かがこれに光を当てることができますか?辞書の実装はすべて間違っていますか?
ありがとう!