2016-09-12 4 views
0

私はObjective-C iPhoneアプリケーションにBEMSimpleLineGraphライブラリを統合しています。コアデータからNSMutableArrayにint値を追加して後で値を取得する際に問題があります同じクラスではありますが、別の方法です。ここNSMutableArrayにint値を入力して再取得する

私は、アレイを充填するために使用するコードである:ここ

// Get those points from Core Data into my arrays 
for (int i = 0; i < countInArray; i++) { 

    NSManagedObject *device = [self.tapTestsConducted objectAtIndex:i]; 

    int leftInt, rightInt; 

    leftInt = [[device valueForKey:@"leftNumber"] intValue]; 
    rightInt = [[device valueForKey:@"rightNumber"] intValue]; 

    [_leftArray addObject: [NSNumber numberWithInt:leftInt]]; 
    [_rightArray addObject: [NSNumber numberWithInt:rightInt]]; 

    NSDate *date = [device valueForKey:@"date"]; 
    [self.dateArray addObject: date]; 

    // For testing - Did the correct data get into the arrays? 

    NSLog(@"%d", leftInt); 
    NSLog(@"%d", rightInt); 
    NSLog(@"%@", date); 
} 

は、グラフのY値を検索するために使用される方法である。

- (CGFloat)lineGraph:(BEMSimpleLineGraphView *)graph valueForPointAtIndex:(NSInteger)index { 
NSNumber *anumber = [_leftArray objectAtIndex:index]; 
int anInt = [anumber intValue]; 

NSLog(@"%d", anInt); 
return anInt; 
} 

のNSLogは、最初の部分に正しい出力しますデータはありますが、2番目のメソッドのNSLogはすべて0を出力します。

アドバイスや入力は大変ありがとうございます!

編集:私は適切になるように、私の.hファイルで私のNSMutableArraysを宣言した

2016-09-11 22:30:04.072 CNS Test CD[16805:849994] 5 tests conducted 
2016-09-11 22:30:04.072 CNS Test CD[16805:849994] 12 
2016-09-11 22:30:04.072 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:04.072 CNS Test CD[16805:849994] 2016-08-31 23:49:12 +0000 
2016-09-11 22:30:04.072 CNS Test CD[16805:849994] 20 
2016-09-11 22:30:04.072 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:04.072 CNS Test CD[16805:849994] 2016-09-02 23:31:44 +0000 
2016-09-11 22:30:04.073 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:04.073 CNS Test CD[16805:849994] 17 
2016-09-11 22:30:04.073 CNS Test CD[16805:849994] 2016-09-02 23:32:12 +0000 
2016-09-11 22:30:04.073 CNS Test CD[16805:849994] 12 
2016-09-11 22:30:04.073 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:04.073 CNS Test CD[16805:849994] 2016-09-05 19:13:19 +0000 
2016-09-11 22:30:04.073 CNS Test CD[16805:849994] 13 
2016-09-11 22:30:04.073 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:04.074 CNS Test CD[16805:849994] 2016-09-05 19:13:55 +0000 
2016-09-11 22:30:05.949 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.950 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.950 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.950 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.950 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.950 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.950 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.950 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.950 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.951 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.955 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.955 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.955 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.956 CNS Test CD[16805:849994] 0 
2016-09-11 22:30:05.956 CNS Test CD[16805:849994] 0 
+0

forループの後に 'dateArray'を出力すると、どのような出力が得られますか?または、エラーが発生した場合はエラーを追加してください。 –

+0

'_leftArray'はすべての点でnilではありませんか? – Avi

+0

は 'NSMutableArray'として初期化された' leftArray'ですか?あなたが操作する前にその初期化されていることを確認してください。 –

答えて

0

:ここのNSLog出力は、実行時に私が行っていなかった何

@property (strong, nonatomic) NSMutableArray *leftArray; 
@property (strong, nonatomic) NSMutableArray *rightArray; 
@property (strong, nonatomic) NSMutableArray *dateArray; 

、および私がそれをした後で問題を修正したのは、alloc初期化でarrasを初期化することでした。私はこれらの行をforループの前に置いた。

self.leftArray = [[NSMutableArray alloc] init]; 
self.rightArray = [[NSMutableArray alloc] init]; 
self.dateArray = [[NSMutableArray alloc] init]; 
関連する問題