{"id":26,"date":"2023-01-20T09:45:10","date_gmt":"2023-01-20T01:45:10","guid":{"rendered":"http:\/\/www.qirimi.com\/?p=26"},"modified":"2023-01-20T09:45:10","modified_gmt":"2023-01-20T01:45:10","slug":"ios%e5%bc%80%e5%8f%91-%e4%b9%8b-%e7%ae%80%e4%bd%93%e5%92%8c%e7%b9%81%e4%bd%93%e4%b8%ad%e6%96%87%e8%bd%ac%e6%8d%a2","status":"publish","type":"post","link":"http:\/\/www.qirimi.com\/index.php\/2023\/01\/20\/ios%e5%bc%80%e5%8f%91-%e4%b9%8b-%e7%ae%80%e4%bd%93%e5%92%8c%e7%b9%81%e4%bd%93%e4%b8%ad%e6%96%87%e8%bd%ac%e6%8d%a2\/","title":{"rendered":"iOS\u5f00\u53d1 \u4e4b \u7b80\u4f53\u548c\u7e41\u4f53\u4e2d\u6587\u8f6c\u6362"},"content":{"rendered":"\n<p>\u6700\u8fd1\u505a\u9879\u76ee\uff0c\u9700\u8981\u7528\u5230\u7b80\u4f53\u548c\u7e41\u4f53\u4e2d\u6587\u8f6c\u6362\uff0c\u56e0\u6b64\u5c01\u88c5\u4e86\u4e00\u4e2a\u4e2d\u6587\u8f6c\u6362\u7684\u7c7b\u8d21\u732e\u7ed9\u5927\u5bb6\u3002<\/p>\n\n\n\n<p>\u5927\u6982\u601d\u8def\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n\n\n\n<p>1\u3001\u5148\u52a0\u8f7d\u7b80\u4f53\u4e2d\u6587\u548c\u7e41\u4f53\u4e2d\u6587\u7801\u8868<\/p>\n\n\n\n<p>2\u3001\u5c06\u9700\u8981\u8f6c\u6362\u7684\u4e2d\u6587\u5b57\u7b26\u62ff\u5230\u7801\u8868\u4e0a\u67e5\u627e\u76f8\u5e94\u4f4d\u7f6e<\/p>\n\n\n\n<p>3\u3001\u5982\u679c\u67e5\u627e\u5230\u4e86\uff0c\u5219\u53d6\u51fa\u53e6\u4e00\u4e2a\u7801\u8868\u4e0a\u5bf9\u5e94\u7684\u5b57\u7b26\uff1b\u5982\u679c\u6ca1\u67e5\u5230\uff0c\u5219\u4e0d\u8fdb\u884c\u8f6c\u6362\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e00\u3001\u8be6\u7ec6\u4ee3\u7801<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\n\/\/  ZMChineseConvert.m\n\/\/  ZMChineseConvert\n\/\/\n\/\/  Created by ZengZhiming on 2017\/3\/30.\n\/\/  Copyright \u00a9 2017\u5e74 \u83dc\u9e1f\u57fa\u5730. All rights reserved.\n\/\/\n \n#import \"ZMChineseConvert.h\"\n \n@interface ZMChineseConvert ()\n \n@property(nonatomic, strong) NSString *simplifiedCode;  \/\/!&lt; \u7b80\u4f53\u4e2d\u6587\u7801\u8868.\n@property(nonatomic, strong) NSString *traditionalCode; \/\/!&lt; \u7e41\u4f53\u4e2d\u6587\u7801\u8868.\n \n@end\n \n@implementation ZMChineseConvert\n \n \n\/**\n \u7b80\u4f53\u4e2d\u6587\u8f6c\u7e41\u4f53\u4e2d\u6587\n \n @param simpString \u7b80\u4f53\u4e2d\u6587\u5b57\u7b26\u4e32\n @return \u7e41\u4f53\u4e2d\u6587\u5b57\u7b26\u4e32\n *\/\n+ (NSString *)convertSimplifiedToTraditional:(NSString *)simpString\n{\n    return &#91;&#91;ZMChineseConvert getInstance] convertSimplifiedToTraditional:simpString];\n}\n \n \n\/**\n \u7e41\u4f53\u4e2d\u6587\u8f6c\u7b80\u4f53\u4e2d\u6587\n \n @param tradString \u7e41\u4f53\u4e2d\u6587\u5b57\u7b26\u4e32\n @return \u7b80\u4f53\u4e2d\u6587\u5b57\u7b26\u4e32\n *\/\n+ (NSString*)convertTraditionalToSimplified:(NSString*)tradString\n{\n    return &#91;&#91;ZMChineseConvert getInstance] convertTraditionalToSimplified:tradString];\n}\n \n \n\/\/ \u83b7\u53d6\u5355\u4f8b\u5bf9\u8c61\n+ (instancetype)getInstance\n{\n    static id instance = nil;\n    static dispatch_once_t onceToken;\n    dispatch_once(&amp;onceToken, ^{\n        instance = &#91;&#91;self alloc] init];\n    });\n    return instance;\n}\n \n- (instancetype)init\n{\n    self = &#91;super init];\n    if (self) {\n        \/\/ \u52a0\u8f7d\u7b80\u4f53\u4e2d\u6587\u548c\u7e41\u4f53\u4e2d\u6587\u7801\u8868\n        NSString *resourcePath = &#91; &#91;NSBundle mainBundle] resourcePath];\n        self.simplifiedCode = &#91;NSString stringWithContentsOfFile:&#91;resourcePath stringByAppendingPathComponent:@\"SimplifiedCode.txt\"] encoding:NSUTF8StringEncoding error:nil];\n        self.traditionalCode = &#91;NSString stringWithContentsOfFile:&#91;resourcePath stringByAppendingPathComponent:@\"TraditionalCode.txt\"] encoding:NSUTF8StringEncoding error:nil];\n    }\n    return self;\n}\n \n \n\/**\n \u7b80\u4f53\u4e2d\u6587\u8f6c\u7e41\u4f53\u4e2d\u6587\n \n @param simpString \u7b80\u4f53\u4e2d\u6587\u5b57\u7b26\u4e32\n @return \u7e41\u4f53\u4e2d\u6587\u5b57\u7b26\u4e32\n *\/\n- (NSString *)convertSimplifiedToTraditional:(NSString *)simpString\n{\n    \/\/ \u7a7a\u503c\u5224\u65ad\n    if (IsNullString(simpString)) {\n        return nil;\n    }\n    \n    \/\/ \u5b58\u50a8\u8f6c\u6362\u7ed3\u679c\n    NSMutableString *resultString = &#91;NSMutableString string];\n    \n    \/\/ \u904d\u5386\u5b57\u7b26\u4e32\u4e2d\u7684\u5b57\u7b26\n    NSInteger length = &#91;simpString length];\n    for (NSInteger i = 0; i &lt; length; i++)\n    {\n        \/\/ \u5728\u7b80\u4f53\u4e2d\u6587\u4e2d\u67e5\u627e\u5b57\u7b26\u4f4d\u7f6e\uff0c\u5982\u679c\u5b58\u5728\u5219\u53d6\u51fa\u5bf9\u5e94\u7684\u7e41\u4f53\u4e2d\u6587\n        NSString *simCharString = &#91;simpString substringWithRange:NSMakeRange(i, 1)];\n        NSRange charRange = &#91;self.simplifiedCode rangeOfString:simCharString];\n        if(charRange.location != NSNotFound) {\n            NSString *tradCharString = &#91;self.traditionalCode substringWithRange:charRange];\n            &#91;resultString appendString:tradCharString];\n        }else{\n            &#91;resultString appendString:simCharString];\n        }\n    }\n    return resultString;\n}\n \n \n\/**\n \u7e41\u4f53\u4e2d\u6587\u8f6c\u7b80\u4f53\u4e2d\u6587\n \n @param tradString \u7e41\u4f53\u4e2d\u6587\u5b57\u7b26\u4e32\n @return \u7b80\u4f53\u4e2d\u6587\u5b57\u7b26\u4e32\n *\/\n- (NSString *)convertTraditionalToSimplified:(NSString *)tradString\n{\n    \/\/ \u7a7a\u503c\u5224\u65ad\n    if (IsNullString(tradString)) {\n        return nil;\n    }\n    \n    \/\/ \u5b58\u50a8\u8f6c\u6362\u7ed3\u679c\n    NSMutableString *resultString = &#91;NSMutableString string];\n    \n    \/\/ \u904d\u5386\u5b57\u7b26\u4e32\u4e2d\u7684\u5b57\u7b26\n    NSInteger length = &#91;tradString length];\n    for (NSInteger i = 0; i &lt; length; i++)\n    {\n        \/\/ \u5728\u7e41\u4f53\u4e2d\u6587\u4e2d\u67e5\u627e\u5b57\u7b26\u4f4d\u7f6e\uff0c\u5982\u679c\u5b58\u5728\u5219\u53d6\u51fa\u5bf9\u5e94\u7684\u7b80\u4f53\u4e2d\u6587\n        NSString *tradCharString = &#91;tradString substringWithRange:NSMakeRange(i, 1)];\n        NSRange charRange = &#91;self.traditionalCode rangeOfString:tradCharString];\n        if(charRange.location != NSNotFound) {\n            NSString *simCharString = &#91;self.simplifiedCode substringWithRange:charRange];\n            &#91;resultString appendString:simCharString];\n        }else{\n            &#91;resultString appendString:tradCharString];\n        }\n    }\n    return resultString;\n}\n \n@end\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e8c\u3001\u4f7f\u7528\u65b9\u5f0f<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/** \u7b80\u8f6c\u7e41\u70b9\u51fb\u54cd\u5e94 *\/\n- (IBAction)onSimpToTradAction:(UIButton *)sender {\n    _resultLabel.text = &#91;ZMChineseConvert convertSimplifiedToTraditional:_textField.text];\n}\n \n\/** \u7e41\u8f6c\u7b80\u70b9\u51fb\u54cd\u5e94 *\/\n- (IBAction)onTradToSimpAction:(UIButton *)sender {\n    _resultLabel.text = &#91;ZMChineseConvert convertTraditionalToSimplified:_textField.text];\n}\n<\/code><\/pre>\n\n\n\n<p>Demo\u8bf7\u79fb\u6b65\uff1a<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/zeng-zhiming\/ZMChineseConvert\" target=\"_blank\">https:\/\/github.com\/zeng-zhiming\/ZMChineseConvert<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\u505a\u9879\u76ee\uff0c\u9700\u8981\u7528\u5230\u7b80\u4f53\u548c\u7e41\u4f53\u4e2d\u6587\u8f6c\u6362\uff0c\u56e0\u6b64\u5c01\u88c5\u4e86\u4e00\u4e2a\u4e2d\u6587\u8f6c\u6362\u7684\u7c7b\u8d21\u732e\u7ed9\u5927\u5bb6\u3002 \u5927\u6982\u601d\u8def\u662f\u8fd9\u6837\u7684\uff1a 1\u3001\u5148\u52a0\u8f7d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[2,7,8],"class_list":["post-26","post","type-post","status-publish","format-standard","hentry","category-3","tag-ios","tag-7","tag-8"],"_links":{"self":[{"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/posts\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":1,"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/posts\/26\/revisions"}],"predecessor-version":[{"id":27,"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/posts\/26\/revisions\/27"}],"wp:attachment":[{"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/media?parent=26"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/categories?post=26"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.qirimi.com\/index.php\/wp-json\/wp\/v2\/tags?post=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}