iOS Unicode 字元 處理

來源:互聯網
上載者:User


#define THEROWLENGTH    16

#define UnicodeSTART    9728 - 1
+ ( NSString  *)replaceUnicode:( NSString  *)unicodeStr {

    

    NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];

    NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];

    NSString *tempStr3 = [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""];

    NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];

    NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData

                                                           mutabilityOption:NSPropertyListImmutable

                                                                     format:NULL

                                                           errorDescription:NULL];

    

    //NSLog(@"Output = %@", returnStr);

    

    return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@"\n"];

}

- (void)showUnicodeIcon

{

    j = THEROWLENGTH;

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        NSTimer *timerRun = [NSTimer timerWithTimeInterval:3 target:self selector:@selector(timeShow) userInfo:nil repeats:YES];

        [[NSRunLoop currentRunLoop] addTimer:timerRun forMode:NSRunLoopCommonModes];

        [[NSRunLoop currentRunLoop] run];

//        [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:20.0]]; //主線程等待,但讓出主線程時間片,然後過10秒後返回

    });

}

- (void)timeShow

{

    NSMutableString  *stirn2= [NSMutableString stringWithCapacity:0 ];

    

        for (int i = 1; i <= j; i++) {

            //i = 1 在UnicodeSTART處進行調整

            [stirn2 appendFormat:@"\\u%x", UnicodeSTART + i % THEROWLENGTH + (THEROWLENGTH * (i / THEROWLENGTH)) ] ;

            

//            NSLog(@"the string is #### %@", stirn2);

            

            NSString *unicodeStringShow = [[self class] replaceUnicode:stirn2];

            

            if (i % THEROWLENGTH == 0) {

                NSLog(@"the unicode is %@", unicodeStringShow);

                        //回到主線程

                        dispatch_async(dispatch_get_main_queue(), ^{

                            //refresh UI

                            _label.font = [UIFont fontWithName:@"Helvetica" size:40.f];

                            _label.textAlignment = NSTextAlignmentLeft;

                            _label.numberOfLines = 0;//行數設定為1,不設定時系統會預設行數為1

//                            [_label sizeToFit];

                            _label.text = [NSString stringWithString:unicodeStringShow];

                            

                        });

            }

//            NSLog(@"the unicode is %@", unicodeString);

            

            if (i % THEROWLENGTH == 0 && (i != 0)) {

                //清空本String

                [stirn2 setString:@""];

//                NSLog(@"the string is ===%@", stirn2);

            }

            

        }

        j += 16;

    

    NSLog(@"%@", @"timeShow");

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.