2016-09-16 4 views
5

In iOS10 sind die NSLog auf 1024 Zeichen begrenzt, hat jemand eine Umgehung, um komplette Zeichenfolge zu drucken.iOS10 NSLog ist auf 1024 Zeichen beschränkt Zeichenfolgen

+0

teilen Sie die Zeichenfolge in 1024 Char-Chunks auf und protokollieren Sie jede einzeln. –

+1

Lösung ist gut, aber es scheint schwer zu implementieren, da wir viele Protokolle verwenden. Vor allem die Serverantwort ist riesig und es wäre gut, JSON ohne Zeilenumbrüche zu loggen. –

Antwort

4

versuchen printf dann statt NSLog wie

printf("%s", [string UTF8String]); 

Es kann funktioniert

+0

danke Lion seine Werke! –

+0

NSString * logMessage = [NSString stringWithFormat: @ ""]; printf ("% s", [logMessage UTF8String]); –

+0

Gern geschehen ....... :) – Lion

2

ich denke das ist eine gleiche Frage mit [NSLog on devices in iOS 10/Xcode 8 seems to truncate? Why?, werde ich auch hier meine Antwort veröffentlichen, falls Sie zu Verwenden Sie stattdessen printf.

Dies ist eine temporäre Lösung, da ich denke, es ist ein Fehler.

Definieren Sie einfach alle NSLOG bis printf in einer globalen Header-Datei.

#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]); 
2

ein Swift Abhilfe für dieses neue Xcode8 und Sierra „Feature“ ...

func Log(_ format:String, _ args:CVarArg...) { 
    let output = withVaList(args, { (p) -> NSString in 
     NSString(format: format, arguments: p) 
    }) as String 
    print(output) 
} 

Natürlich wird dies die Eigenschaften NSLog nicht, dass wir wie die Zeitstempel erfordern, bündeln Name und Threads (einschließlich Serialisierung).

Verwandte Themen