Débuggage Iphone : pas facile ! Une solution autour de NSLog.
Par Jeremie Engel le mercredi, décembre 12 2007, 18:48 - IPhone - Lien permanent
Une macro remplace le NSLog.
/*
* VSLog.h
* Created by Jérémie Engel 12/12/2007.
* Copyright 2007 VisuaWeb. All rights reserved.
*
*/
#include <Foundation/Foundation.h>
#include <CoreFoundation/CoreFoundation.h>
#define VSLog(s,...) [VSLog LogToDefaultFile:(s),##__VA_ARGS__]
#define NSLog(s,...) [VSLog LogToDefaultFile:(s),##__VA_ARGS__]
@interface VSLog : NSObject {
va_list ap;
NSFileHandle *fileOutHandle;
NSString *strToWrite, *fileOut;
}
+ (void)LogToDefaultFile: (NSString*)format, ...;
@end
/*
* VSLog.m
* Created by Jérémie Engel 12/12/2007.
* Copyright 2007 VisuaWeb. All rights reserved.
*
*/
#include "VSLog.h"
@implementation VSLog
+ (void)LogToDefaultFile:(NSString*)format, ...; {
va_listap;
NSFileHandle *fileOutHandle;
NSString *strToWrite, *fileOut;
va_start(ap,format);
strToWrite=[[[NSStringalloc] initWithFormat:format arguments:ap] stringByAppendingString:@"\n"];
va_end(ap);
if (![[NSFileManagerdefaultManager] fileExistsAtPath:@"/var/root/VSLog.txt"]) [[NSFileManagerdefaultManager] createFileAtPath:@"/var/root/VSLog.txt"contents:nilattributes:nil];
fileOut = [[NSStringstringWithString:@"/var/root/VSLog.txt"] stringByExpandingTildeInPath];
fileOutHandle = [NSFileHandlefileHandleForWritingAtPath:fileOut];
[fileOutHandletruncateFileAtOffset:[fileOutHandleseekToEndOfFile]];
[fileOutHandlewriteData:[strToWritedataUsingEncoding:NSUTF8StringEncoding]];
[fileOutHandlecloseFile];
[fileOutHandlerelease];
[fileOutrelease];
[strToWriterelease];
return;
}
@end

Commentaires
Oup's, y'a des Release de trop
il faut en lever :
[fileOutHandlerelease];
[fileOutrelease];
[strToWriterelease];
Salut !
Heureux de trouver un francais qui bidouille egalement sur l'iphone ...
J'ai voulu tester ta brique de log ... mais il n'y a pas crétion de fichier ..
aurai tu un exemple d'utilisation ... pour etre sur que je vais bien les bonne manip !
@+