Hallo!
Wahrscheinlich wieder eine typische Anfängerfrage von mir. Ich versuche Click-Events in einem NSDictionary abzuspeichern.
Zunächst werden die Click-Events in einem Array gespeichert:
Ein Thread ruft dieses Array ab und befüllt damit ein NSDictionary:
Alles anzeigen
Nach 3 Clicks hab ich folgendes im Log:
Alles anzeigen
Die Click-Objekte scheinen zwar zu existieren, aber locationInView scheint keine brauchbaren Werte mehr zu liefern. Woran kann das liegen?
Wahrscheinlich wieder eine typische Anfängerfrage von mir. Ich versuche Click-Events in einem NSDictionary abzuspeichern.
Zunächst werden die Click-Events in einem Array gespeichert:
Ein Thread ruft dieses Array ab und befüllt damit ein NSDictionary:
Quellcode
- - (void) myThreadMainMethod:(id)param {
- NSArray *Inputs;
- NSMutableDictionary *inputRecorder = [[NSMutableDictionary alloc] init];
- ...
- while([inputRecorder count] < 10) //frame update
- {Click
- ...
- while(execution_time > update_time)
- {
- Inputs = [self getClickEvents];
- if ([Inputs count] > 0) {
- [inputRecorder setObject:Inputs forKey:[NSNumber numberWithInt:num_updates]];
- NSArray *records = [inputRecorder allValues];
- int counter = 0;
- NSLog(@"Clicking");
- for (NSArray *aRec in records) {
- for (NSSet *ce in aRec) {
- NSLog(@"CE %i Timestamp: %1.2f PosX: %i PosY: %i", counter, [[ce anyObject] timestamp],
- (int) ((CGPoint)[[ce anyObject]locationInView:self]).x,(int)((CGPoint)[[ce anyObject]locationInView:self]).y);
- counter++;
- }
- }
- [records release];
- }
- ...
- - (NSArray *) getClickEvents {
- NSArray *returnvalue = [[NSArray alloc] initWithArray:ClickCollector];
- [ClickCollector removeAllObjects];
- return returnvalue;
- }
Nach 3 Clicks hab ich folgendes im Log:
Quellcode
- 2008-08-22 17:40:47.339 [2986:20b] Clicking
- 2008-08-22 17:40:47.339 [2986:3c03] CE 0 Timestamp: 23080.49 PosX: 150 PosY: 408
- 2008-08-22 17:40:48.170 [2986:20b] Clicking
- 2008-08-22 17:40:48.171 [2986:3c03] CE 0 Timestamp: 23080.49 PosX: 0 PosY: 0
- 2008-08-22 17:40:48.171 [2986:3c03] CE 1 Timestamp: 23081.32 PosX: 131 PosY: 313
- 2008-08-22 17:40:50.554 [2986:20b] Clicking
- 2008-08-22 17:40:50.555 [2986:3c03] CE 0 Timestamp: 23080.49 PosX: 0 PosY: 0
- 2008-08-22 17:40:50.556 [2986:3c03] CE 1 Timestamp: 23081.32 PosX: 0 PosY: 0
- 2008-08-22 17:40:50.556 [2986:3c03] CE 2 Timestamp: 23083.70 PosX: 162 PosY: 219
- 2008-08-22 17:40:51.406 [2986:20b] Clicking
- 2008-08-22 17:40:51.406 [2986:3c03] CE 0 Timestamp: 23084.55 PosX: 207 PosY: 398
- 2008-08-22 17:40:51.407 [2986:3c03] CE 1 Timestamp: 23080.49 PosX: 0 PosY: 0
- 2008-08-22 17:40:51.407 [2986:3c03] CE 2 Timestamp: 23081.32 PosX: 0 PosY: 0
- 2008-08-22 17:40:51.408 [2986:3c03] CE 3 Timestamp: 23083.70 PosX: 0 PosY: 0
Die Click-Objekte scheinen zwar zu existieren, aber locationInView scheint keine brauchbaren Werte mehr zu liefern. Woran kann das liegen?