iOS | 解決中文亂碼


在iOS開發中,多多少少的朋友在開發的過程中,測試數據的時候可能會碰到后台打印的時候不能正確的打印出正常的漢字,打印出一些影響判斷的字符,經常需要查看數組中得元素是否是自己想要的,但是蘋果並沒有對直接打印數組中得中文作處理,直接打印就會出現一堆很討厭的東西,解決其實很簡單,就是需要通過為NSArray添加分類.

可以在同一個類文件中書寫兩個類的聲明,這樣可以節省空間,因為是針對於同樣的功能點.

在.h文件中的聲明


#import <Foundation/Foundation.h>
//數組的打印
@interface NSArray (Log)

@end
//字典的打印
@interface NSDictionary (Log)

@end

在.m文件中的實現

//數組的實現
#import "NSArray+Log.h"

@implementation NSArray (Log)

// 只需要在分類中,重寫這個方法的實現,不需要導入分類文件就會生效
- (NSString *)descriptionWithLocale:(id)locale
{
    // 定義用於拼接字符串的容器
    NSMutableString *stringM = [NSMutableString string];
    
    // 拼接開頭
    [stringM appendString:@"(\n"];
    
    // 拼接中間的數組元素
    [self enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        
        [stringM appendFormat:@"\t%@,\n",obj];
        
    }];
    
    // 拼接結尾
    [stringM appendString:@")\n"];
    
    return stringM;
}

@end

//字典的實現
@implementation NSDictionary (Log)

// 只需要在分類中,重寫這個方法的實現,不需要導入分類文件就會生效
- (NSString *)descriptionWithLocale:(id)locale
{
    // 定義用於拼接字符串的容器
    NSMutableString *stringM = [NSMutableString string];
    
    // 拼接開頭
    [stringM appendString:@"{\n"];
    
    // 遍歷字典,拼接內容
    [self enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        [stringM appendFormat:@"\t%@ = %@;\n",key,obj];
    }];
    
    // 拼接結尾
    [stringM appendString:@"}\n"];
    
    return stringM;
}

@end

這兩個文件需要用得時候可以直接復制進工程,不需要導入會自動的對數組和字典打印進行處理,使用相當方便,為我閑暇之余提供的一點小便利方法.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM