2013-01-19 68 views
0

這裏的每一幀是我的代碼:編寫XML線30FPS

float timeInterval = 1/[frameRateTextField floatValue]; 

     recordingTimer = [NSTimer scheduledTimerWithTimeInterval:timeInterval 
                  target:self 
                 selector:@selector(recordingTimerSelector:) 
                 userInfo:nil 
                 repeats:YES]; 


- (void) recordingTimerSelector:(NSTimer*)timer{ 
    NSXMLElement *timecode = [[NSXMLElement alloc] initWithName:@"timecode"]; 
    [timecode setStringValue:[NSString stringWithFormat:@"%@,%@,%@,%@,%@",[DMXChannelArray objectAtIndex:0], [DMXChannelArray objectAtIndex:1], [DMXChannelArray objectAtIndex:2], [DMXChannelArray objectAtIndex:3], [DMXChannelArray objectAtIndex:4]]]; 

    [root addChild:timecode]; 

    time = time + 1; 
    [theRecordingTime setStringValue:[NSString stringWithFormat:@"%d", time]]; 
} 

這是去這樣做的最佳方式?我基本上製作了一個分辨率爲30FPS的「記錄器」。有沒有辦法讓它與實際時間一致,而不是一個單獨的實體?這可能會使它更加準確。像:

10:40:41.0 - record element 
10:40:41.3 - record element 
10:40:41.6 - record element 

謝謝!

+0

爲什麼不從存儲抽象數據結構?由此我的意思是寫入一個高效的內存數據結構,然後保存到以後的持久化... – bryanmac

+0

你能舉個例子嗎? – objectiveccoder001

+0

不,但您可以避免每秒30次的「原始」數據的字符串格式。將原始數據(對格式化字符串的貢獻)存儲在內存ds(數組數組)中,然後格式化字符串,並在完成時寫入xml。 – bryanmac

回答