私のプログラムは、GPS を介してユーザーの現在位置を読み込み、txt ファイルに保存して、統計目的で電子メールで送信します。私の問題は次のとおりです。
ポジションを保存するたびに15秒の遅延を与える最初の試み:
[NSTimer scheduledTimerWithTimeInterval:15.0 target:self selector:@selector(locationManager:) userInfo:nil repeats:YES];
問題は、これが機能せず、その理由がわからないことです。
- 私のもう1つの問題は、ファイルが大きすぎる場合...そのために、作成された日付と毎日異なる日付に名前を付けたいことです。私はいくつかのことを試しましたが、何も得られませんでした。
コード:
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
//Obtenemos las coordenadas.
latitud = newLocation.coordinate.latitude;
longitud = newLocation.coordinate.longitude;
precision = newLocation.horizontalAccuracy;
// Lo mostramos en las etiquetas
[latitudLabel setText:[NSString stringWithFormat:@"%0.8f",latitud]];
[longitudLabel setText:[NSString stringWithFormat:@"%0.8f",longitud]];
[precisionLabel setText:[NSString stringWithFormat:@"%0.8f",precision]];
tiempoLabel=[self.dateFormatter stringFromDate:newLocation.timestamp];
//NSLog(@"tiempo: %@",tiempoLabel);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"textfile.txt"];
//[[NSFileManager defaultManager] removeItemAtPath:path error:nil];
// create if needed
if (![[NSFileManager defaultManager] fileExistsAtPath:path]){
[[NSData data] writeToFile:path atomically:YES];}
NSString *contents = [NSString stringWithFormat:@"tiempo: %@ latitude:%+.6f longitude: %+.6f precisión: %f\n",tiempoLabel,latitud,longitud,precision];
NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:path];
[handle truncateFileAtOffset:[handle seekToEndOfFile]];
[handle writeData:[contents dataUsingEncoding:NSUTF8StringEncoding]];}
助けてくれてありがとう。StackOverflow は私のプロジェクトで大いに役立っています