2016-09-16 18 views
5

Trong iOS10, NSlog được giới hạn ở 1024 ký tự, có ai biết cách giải quyết để in chuỗi hoàn chỉnh.iOS10 NSLog bị giới hạn ở 1024 chuỗi ký tự

+0

chia chuỗi thành 1024 khối và ghi lại từng đoạn riêng lẻ. Giải pháp –

+1

là tốt, nhưng nó có vẻ khó thực hiện, vì chúng tôi sử dụng nhiều nhật ký. Đặc biệt là phản hồi của máy chủ là rất lớn và nó sẽ là tốt để đăng nhập JSON mà không có ngắt dòng. –

Trả lời

4

thử printf sau đó thay vì NSLog như,

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

Nó có thể làm việc

+0

nhờ Sư tử công trình của nó! –

+0

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

+0

Bạn được chào đón ....... :) – Lion

2

Tôi nghĩ đây là một câu hỏi tương tự với [NSLog on devices in iOS 10/Xcode 8 seems to truncate? Why?, tôi cũng sẽ gửi câu trả lời của tôi ở đây, trong trường hợp bạn muốn sử dụng printf để thay thế.

Đây là giải pháp tạm thời vì tôi nghĩ đó là lỗi.

Chỉ cần xác định lại tất cả NSLOG thành printf trong tệp tiêu đề chung.

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

một workaround Swift cho mới Xcode8 và Sierra “tính năng” này ...

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

Tất nhiên, điều này sẽ không có các tính năng của NSLog rằng chúng tôi có thể yêu cầu như tem thời gian, bó tên và công cụ chuỗi (bao gồm cả việc tuần tự hóa).

Các vấn đề liên quan