UI:通讯录实现

通讯录实现草图: 

 

代码:

#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (retain, nonatomic) UIWindow *window;


@end
#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "AppDelegate.h"
#import "ContactListViewController.h"
#import "MainNavigationController.h"
#import "FirstLaunchViewController.h"
@interface AppDelegate ()

@end

@implementation AppDelegate
- (void)dealloc {
    [_window release];
    [super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    //判断是否第一次安装启动
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    //如果是 则指定用户引导页为window的根视图控制器
    if (![defaults boolForKey:@"firstLaunch"]) {
        FirstLaunchViewController *firstVC = [[FirstLaunchViewController alloc] init];
        self.window.rootViewController = firstVC;
        [firstVC release];
    } else {
    //否则,进入程序的主页面
    //设置根视图控制器
    ContactListViewController *mainVC = [[ContactListViewController alloc] initWithStyle:UITableViewStylePlain];
    //创建导航控制器
    MainNavigationController *navi = [[MainNavigationController alloc] initWithRootViewController:mainVC];
    //指定为window的根视图控制器
    self.window.rootViewController = navi;
    //释放所有权
    [mainVC release];
    [navi release];
    }
    
    return YES;
}
View Code AppDelegate文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <Foundation/Foundation.h>
#import "Contact.h"
#import <UIKit/UIKit.h>

@interface AddressBookHelper : NSObject

//提供相应的方法给对应的controller

+ (NSInteger)numberOfSection; //返回分区个数

+ (NSInteger)numberOfRowsInSection:(NSInteger)section; //返回对应分区的行数

+ (NSString *)titleForHeaderInSection:(NSInteger)section;//返回对应分区的title

+ (NSArray *)sectionIndexTitles; //返回右侧索引标题

//delete
+ (BOOL)isNeedToDeleteWholeSection:(NSInteger)section; //是否删除整个分区

+ (void)deleteWholeSection:(NSInteger)section;//删除整个分区

+ (void)deleteRowAtIndexPath:(NSIndexPath *)indexPath; //删除一行

//move
+ (void)moveFromIndexPath:(NSIndexPath *)sourceIndexPath ToIndexPath:(NSIndexPath *)destinationIndexPath;

//返回对应行所需的联系人
+ (Contact *)contactAtIndexPath:(NSIndexPath *)indexPath;

//添加联系人
+ (void)addContact:(Contact *)newContact;

//保存数据
+ (void)saveData;

@end

#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------

/**
 *  AddressBookHelper 是通讯录列表界面的助手类,帮助列表界面做数据处理相关的内容,为ContactListViewController瘦身,该类可有可无。
 M层的类:和数据有关的类。数据解析类,数据请求类,数据本地化类。
 */

#define kPlistName @"contacts"

#import "AddressBookHelper.h"
#import "NSString+Addition.h"

@interface AddressBookHelper ()
@property (nonatomic, retain) NSMutableDictionary *dataSource;//存储外层信息的大字典
@property (nonatomic, retain) NSMutableArray *sortedKeys;//存储排好序的key
@end

@implementation AddressBookHelper
static AddressBookHelper *helper;
//单例方法
+ (AddressBookHelper *)defaultHelper {
    //安全处理 保证多线程下的安全
    @synchronized(self) {
        if (!helper) {
            helper = [[AddressBookHelper alloc] init];
            [helper readDataFromPlist];//读取本地plist文件
        }
    }
    return helper;
}

//获取本地文件
- (void)readDataFromPlist {
    //1.读取本地文件 并获取其中的字典信息
    NSString *filePath = [[NSBundle mainBundle] pathForResource:kPlistName ofType:@"plist"];
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:filePath];
    self.dataSource = [NSMutableDictionary dictionaryWithCapacity:dict.count];
    
    //2.1遍历字典 得到key
    for (NSString *key in dict) {
        //2.2通过key 获取联系人分组数组
        NSArray *group = dict[key];
        //2.3创建一个可变数组 存放联系人对象
        NSMutableArray *perArr = [NSMutableArray arrayWithCapacity:group.count];
        //2.4遍历分组数组 得到联系人信息小字典
        for (NSDictionary *dic in group) {
            //2.5将小字典信息封装成对象 存放到数组中
            Contact *contact = [[Contact alloc] initWithDic:dic];
            [perArr addObject:contact];
            [contact release];
        }
        //将存放对象的数组及其对应key 存放到字典中
        [self.dataSource setObject:perArr forKey:key];
    }
    //获取排好序的key
    NSArray *sortedArr = [[_dataSource allKeys] sortedArrayUsingSelector:@selector(compare:)];
    self.sortedKeys = [NSMutableArray arrayWithArray:sortedArr];
}

//返回分区个数
+ (NSInteger)numberOfSection {
    return [self defaultHelper].dataSource.count;
//    return [self defaultHelper].sortedKeys.count;
}
//返回对应分区的行数
+ (NSInteger)numberOfRowsInSection:(NSInteger)section {
    return [helper.dataSource[helper.sortedKeys[section]] count];
}
//返回对应分区的title
+ (NSString *)titleForHeaderInSection:(NSInteger)section {
    return helper.sortedKeys[section];
}
//返回右侧索引标题
+ (NSArray *)sectionIndexTitles {
    return helper.sortedKeys;
}
//delete
//是否删除整个分区
+ (BOOL)isNeedToDeleteWholeSection:(NSInteger)section {
    //获取对应分组的联系人数组
    NSArray *group = helper.dataSource[helper.sortedKeys[section]];
    //如果该分组元素个数为1 代表只有一人
    if (group.count == 1) {
        return YES;//则需要删除整个分区
    }
    return NO;//否则,不需要
}
//删除整个分区
+ (void)deleteWholeSection:(NSInteger)section {
    //1.获取对应的key
    NSString *key = helper.sortedKeys[section];
    //2.从字典删除key对应的分组数组
    [helper.dataSource removeObjectForKey:key];
    //3.从排好序的key数组中移除该key值
    [helper.sortedKeys removeObject:key];
}

//删除一行
+ (void)deleteRowAtIndexPath:(NSIndexPath *)indexPath {
    //1.获取对应的分组
    NSMutableArray *group = helper.dataSource[helper.sortedKeys[indexPath.section]];
    //2.从对应分组中移除该元素
    [group removeObjectAtIndex:indexPath.row];
}

//move
+ (void)moveFromIndexPath:(NSIndexPath *)sourceIndexPath ToIndexPath:(NSIndexPath *)destinationIndexPath {
    //获取对应分组数组
    NSMutableArray *group = helper.dataSource[helper.sortedKeys[sourceIndexPath.section]];
    //获取对应的联系人
    Contact *contact = [group[sourceIndexPath.row] retain];
    //从对应位置删除
    [group removeObjectAtIndex:sourceIndexPath.row];
    //插入到最新的位置
    [group insertObject:contact atIndex:destinationIndexPath.row];
    //释放所有权
    [contact release];
}

//返回对应行所需的联系人
+ (Contact *)contactAtIndexPath:(NSIndexPath *)indexPath {
    return helper.dataSource[helper.sortedKeys[indexPath.section]][indexPath.row];
}

//添加联系人
+ (void)addContact:(Contact *)newContact {
    //1.获取联系人姓名 转化为拼音 并取姓名首字母的大写
    NSString *key = [newContact.name firstCharacter];
    //安全处理 判断key是否存在
    if (!key) {
        return;
    }
    //2.获取分组的数组
    NSMutableArray *group = helper.dataSource[key];
    //3.如果该分组不存在 则建立该分组
    if (!group) {
        group = [NSMutableArray array];
        //新建分组 添加到字典中
        [helper.dataSource setObject:group forKey:key];
        //对应分组的key添加到对应数组中,并排序
        [helper.sortedKeys addObject:key];
        [helper.sortedKeys sortUsingSelector:@selector(compare:)];
    }
    //存在该分组,则直接把联系人添加到数组中
    [group addObject:newContact];
}

+ (void)saveData {
#warning 待完善
}

- (void)dealloc {
    self.dataSource = nil;
    self.sortedKeys = nil;
    [super dealloc];
}


@end
View Code AddressBookHelper文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------

#import <UIKit/UIKit.h>

@interface UIColor (Addition)

+ (UIColor *)lightGreenColor;

@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "UIColor+Addition.h"

@implementation UIColor (Addition)
+ (UIColor *)lightGreenColor {
    return [self colorWithRed:88 / 255.0 green:194 / 255.0 blue:135 / 255.0 alpha:1.0];
}

@end
View Code UIColor+Addition文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------

#import <Foundation/Foundation.h>

@interface NSString (Addition)

- (NSString *)chineseToPinYin;

- (NSString *)firstCharacter;

@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "NSString+Addition.h"
#import "ChineseToPinyin.h"
@implementation NSString (Addition)
//中文转拼音
- (NSString *)chineseToPinYin {
    return [ChineseToPinyin pinyinFromChiniseString:self];
}
//获取字符串的首字符
- (NSString *)firstCharacter {
    return [[[self chineseToPinYin] substringToIndex:1] uppercaseString];
}
@end
View Code NSString+Addition文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <UIKit/UIKit.h>

@interface MainNavigationController : UINavigationController

@end

#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "MainNavigationController.h"
#import "UIColor+Addition.h"

@interface MainNavigationController ()

@end

@implementation MainNavigationController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self configureNavigationBar];
}
//配置导航条公共的属性
- (void)configureNavigationBar {
    //导航条渲染颜色
    self.navigationBar.barTintColor = [UIColor lightGreenColor];
    //导航条的内容渲染颜色
    self.navigationBar.tintColor = [UIColor whiteColor];
    //导航条文字属性
    self.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end
View Code MainNavigationController文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------

#import <UIKit/UIKit.h>

@interface FirstLaunchViewController : UIViewController

@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#define FIRST @"firstLaunch"

#define kImageCount 4
#define kPictureName @"information"
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
#define kScrollTag 111
#define kPageControlTag 222
#import "FirstLaunchViewController.h"
#import "ContactListViewController.h"
#import "MainNavigationController.h"
@interface FirstLaunchViewController () <UIScrollViewDelegate>

@end

@implementation FirstLaunchViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    //布局子视图
    [self layoutSubviews];
}

- (void)layoutSubviews {
    [self setUpScrollView];//布局scrollView
    [self setUpPageControl];//布局pageControl
}

- (void)setUpScrollView {
    UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    scroll.tag = kScrollTag;
    //设置内容区域大小
    scroll.contentSize = CGSizeMake(kScreenWidth * kImageCount, kScreenHeight);
    //整页滑动
    scroll.pagingEnabled = YES;
    //不显示水平滚动条
    scroll.showsHorizontalScrollIndicator = NO;
    //设置代理
    scroll.delegate = self;
    [self.view addSubview:scroll];
    [scroll release];
    //放置引导图片
    for (int i = 0; i < kImageCount; i++) {
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(kScreenWidth * i, 0, kScreenWidth, kScreenHeight)];
        
        [imageView setImage:[UIImage imageNamed:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@%02d@2x", kPictureName, i + 1] ofType:@"png"]]];
        [scroll addSubview:imageView];
        [imageView release];
        //最后一张添加轻拍手势
        if (i == kImageCount - 1) {
            UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
            [imageView addGestureRecognizer:tap];
            //打开imageView的用户交互
            imageView.userInteractionEnabled = YES;
            [tap release];
        }
        
    }
}

- (void)setUpPageControl {
    UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake((kScreenWidth - 200) / 2, kScreenHeight - 40, 200, 30)];
    pageControl.tag = kPageControlTag;
    //设置总页数
    pageControl.numberOfPages = kImageCount;
    pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];//其余页点的颜色
    pageControl.currentPageIndicatorTintColor = [UIColor orangeColor];//当前页点的颜色
    [self.view addSubview:pageControl];
    [pageControl release];
}


#pragma -UIScrollViewDelegate-
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    UIPageControl *page = (UIPageControl *)[self.view viewWithTag:kPageControlTag];
    page.currentPage = scrollView.contentOffset.x / kScreenWidth;
}


#pragma mark -轻拍进入程序主页面-
- (void)handleTap:(UITapGestureRecognizer *)tap {
    //当点击最后一张时,意味着用户引导页已结束。将对应的key保存到 NSUserDefaults
    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
    [user setBool:YES forKey:FIRST];
     //立即更新(同步),立即执行保存操作
    [user synchronize];
    //进入程序主界面
    ContactListViewController *mainVC = [[ContactListViewController alloc] init];
    MainNavigationController *navi =[[MainNavigationController alloc] initWithRootViewController:mainVC];
    //更改window的根视图控制器 为主界面的视图控制器mainVC
    [UIApplication sharedApplication].keyWindow.rootViewController = navi;
    [mainVC release];
    [navi release];
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
View Code FirstLaunchViewController文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <UIKit/UIKit.h>

@interface AddContactViewController : UIViewController

@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "AddContactViewController.h"
#import "AddContactView.h"
#import "AddressBookHelper.h"
@interface AddContactViewController () <UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIActionSheetDelegate>

@end

@implementation AddContactViewController

//重写loadView 指定根视图
- (void)loadView {
    AddContactView *add = [[AddContactView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.view = add;
    [add release];
}

- (void)customizedNaviBar {
    self.navigationItem.title = @"添加联系人";
    //left
    UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"clsose"] style:UIBarButtonItemStylePlain target:self action:@selector(handleClose:)];
    self.navigationItem.leftBarButtonItem = left;
    [left release];
    //right
    UIBarButtonItem *right = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"doneR"] style:UIBarButtonItemStylePlain target:self action:@selector(handleDone:)];
    self.navigationItem.rightBarButtonItem = right;
    [right release];
    
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self customizedNaviBar];
    [self addTapGesture];//添加轻拍手势
}

- (void)addTapGesture {
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    [((AddContactView *)self.view).avaterView addGestureRecognizer:tap];
    [tap release];
}
//设置头像
- (void)handleTap:(UITapGestureRecognizer *)tap {
    //调用系统相机或图库
    UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从相册中选取", nil];
    [myActionSheet showInView:self.view];
    [myActionSheet release];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    //呼出的菜单按钮点击后的响应
    if (buttonIndex == actionSheet.cancelButtonIndex)
    {
        NSLog(@"取消");
    }else{
        //相机可用时初始化 pikerController为UIImagePickerControllerSourceTypeCamera
        UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
        switch (buttonIndex)
        {
            case 0:  //打开照相机拍照
                sourceType = UIImagePickerControllerSourceTypeCamera;
                break;
                
            case 1:  //打开本地相册
                sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
                break;
        }
        if (![UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
        {
            //如果源类型 UIImagePickerControllerSourceTypeCamera 不可用时 设置UIImagePickerControllerSourceTypePhotoLibrary 为源类型
            sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        }
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化
        picker.delegate = self;
        picker.allowsEditing = YES;//设置可编辑
        picker.sourceType = sourceType;
        [self presentViewController:picker animated:YES completion:nil];//进入照相界面或相册界面
        [picker release];
    }
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    ((AddContactView *)self.view).avaterView.image = [info objectForKey:UIImagePickerControllerEditedImage];//use编辑后的照片;
    [self dismissViewControllerAnimated:YES completion:nil];
}



#pragma mark - handle Action -
//关闭 放弃保存
- (void)handleClose:(UIBarButtonItem *)item {
    //判断 提示用户
    //if (//用户已添加编辑 ) {
        //提示用户是否放弃
//    }
    [self dismissViewControllerAnimated:YES completion:nil];
}
//添加完成 保存
- (void)handleDone:(UIBarButtonItem *)item {
    AddContactView *view =  (AddContactView *)self.view;
    NSString *name =  view.nameTF.text;
    NSString *number = view.phoneNumTF.text;
    //判断
    if (name.length == 0 || number.length == 0) {
        return;
    }
    //创建联系人对象
    Contact *contact = [[Contact alloc] init];
    contact.name = name;
    contact.phoneNum = number;
    //添加联系人
    [AddressBookHelper addContact:contact];
    //返回
    [self dismissViewControllerAnimated:YES completion:nil];
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end
View Code AddContactViewController文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <UIKit/UIKit.h>

@interface AddContactView : UIView
@property (nonatomic, retain) UITextField *nameTF;//姓名
@property (nonatomic, retain) UITextField *genderTF;//性别
@property (nonatomic, retain) UITextField *phoneNumTF;//电话号码

@property (nonatomic, retain) UIImageView *avaterView;//头像


@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "AddContactView.h"
#import "UIColor+Addition.h"

@implementation AddContactView

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        self.backgroundColor = [UIColor whiteColor];
        [self setUpViews];
    }
    return self;
}
//布局子视图
- (void)setUpViews {
    //头像
    self.avaterView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 80, 80, 80)];
    _avaterView.image = [UIImage imageNamed:@"green_avatarEmpty"];
    _avaterView.userInteractionEnabled = YES;
    _avaterView.layer.cornerRadius = 10;
    _avaterView.layer.masksToBounds = YES;
    [self addSubview:_avaterView];
    [_avaterView release];
    
    //姓名
    self.nameTF = [[UITextField alloc] initWithFrame:CGRectMake(200, 80, 100, 40)];
    _nameTF.backgroundColor = [UIColor lightGrayColor];
    _nameTF.placeholder = @"姓名";
    _nameTF.textColor = [UIColor lightGreenColor];
    [self addSubview:_nameTF];
    [_nameTF release];
    
    //性别
    self.genderTF = [[UITextField alloc] initWithFrame:CGRectMake(200, 140, 100, 40)];
    _genderTF.placeholder = @"性别";
    _genderTF.backgroundColor = [UIColor lightGrayColor];
    _genderTF.textColor = [UIColor lightGreenColor];
    [self addSubview:_genderTF];
    [_genderTF release];
    
    //电话号码
    self.phoneNumTF = [[UITextField alloc] initWithFrame:CGRectMake(20, 200, self.frame.size.width - 40, 40)];
    _phoneNumTF.backgroundColor = [UIColor lightGrayColor];
    _phoneNumTF.placeholder = @"手机号";
    _phoneNumTF.textColor = [UIColor lightGreenColor];
    [self addSubview:_phoneNumTF];
    [_phoneNumTF release];
    
    
}


@end
View Code AddContactView文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------

#import <UIKit/UIKit.h>

@interface ContactListViewController : UITableViewController

@end

#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "ContactListViewController.h"
#import "AddressBookHelper.h"
#import "Contact.h"
#import "AddContactViewController.h"
#import "MainNavigationController.h"
#import "DetailViewController.h"
#import "CustomContactCell.h"
#import "UIColor+Addition.h"
@interface ContactListViewController () <MakeACallDelegate>
@property (nonatomic, retain) UIWebView *webView;
@end

@implementation ContactListViewController

//重新刷新数据
- (void)viewWillAppear:(BOOL)animated {
    [self.tableView reloadData];//重新加载数据
}

- (void)viewDidLoad {
    [super viewDidLoad];
    [self customizedNaviBar];//个性化配置该界面的导航条
    self.tableView.rowHeight  = 60;//行高
    self.tableView.sectionIndexColor = [UIColor lightGreenColor];//索引标题颜色
    //注册cell
    [self.tableView registerClass:[CustomContactCell class] forCellReuseIdentifier:@"reuse"];
}
- (void)customizedNaviBar {
    self.navigationItem.title = @"HHH手机通讯录";
    self.navigationItem.rightBarButtonItem = self.editButtonItem;
    UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"add_contact"] style:UIBarButtonItemStylePlain target:self action:@selector(handleAdd:)];
    self.navigationItem.leftBarButtonItem = left;
    [left release];

}

#pragma mark - handleAdd -
//模态进入添加联系人界面
- (void)handleAdd:(UIBarButtonItem *)left {
    AddContactViewController *addVC = [[AddContactViewController alloc] init];
    MainNavigationController *mainVC = [[MainNavigationController alloc] initWithRootViewController:addVC];
    [self presentViewController:mainVC animated:YES completion:^{
        
    }];
    [addVC release];
    [mainVC release];
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    if ([self isViewLoaded] && !self.view.window) {
        self.view = nil;
    }
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    //通过助手类 返回分区的个数
    return [AddressBookHelper numberOfSection];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    //通过助手类 返回分区的行数
    return [AddressBookHelper numberOfRowsInSection:section];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    CustomContactCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuse" forIndexPath:indexPath];
    
    // Configure the cell...
    Contact *contact = [AddressBookHelper contactAtIndexPath:indexPath];
    //cell控件赋值
    //第1种方式.
//    [cell configureCell:contact];
    //第2种方式. setter方法完成赋值操作
    cell.contact = contact;
    
    //设置代理对象 完成拨打电话
    cell.delegate = self;
    cell.indexPath = indexPath;
    return cell;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return [AddressBookHelper titleForHeaderInSection:section];
}
//右侧的索引标题
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    return [AddressBookHelper sectionIndexTitles];
}

// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the specified item to be editable.
    return YES;
}



// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source
        if ([AddressBookHelper isNeedToDeleteWholeSection:indexPath.section]) {
            //数据
            [AddressBookHelper deleteWholeSection:indexPath.section];
            //UI界面
            [tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationLeft];
        } else {
            //数据
            [AddressBookHelper deleteRowAtIndexPath:indexPath];
            //UI界面
            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
        }
    } else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }   
}


//移动操作
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
    //调用助手类 完成对应的移动操作
    [AddressBookHelper moveFromIndexPath:fromIndexPath ToIndexPath:toIndexPath];
}



// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the item to be re-orderable.
    return YES;
}
//限制移动范围  禁止跨区移动
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath {
    if (sourceIndexPath.section == proposedDestinationIndexPath.section) {
        return proposedDestinationIndexPath;
    }
    return sourceIndexPath;
}

#pragma mark - UITableViewDelegate -
//点击进入详情页面
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    //push进入联系人详情页
    DetailViewController *detailVC = [[DetailViewController alloc] init];
    //(属性)传值 把对应的联系人传递到详情页
    Contact *contact = [AddressBookHelper contactAtIndexPath:indexPath];
    //在push之前给属性赋值
    detailVC.contact = contact;
    
    [self.navigationController pushViewController:detailVC animated:YES];
    [detailVC release];
}


#pragma mark - MakeACallDelegate -
//拨打电话
- (void)dial:(NSIndexPath *)indexPath {
    NSLog(@"%@", indexPath);
    Contact *contact = [AddressBookHelper contactAtIndexPath:indexPath];
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", contact.phoneNum]]]];
}

//懒加载 何时使用 何时创建
- (UIWebView *)webView {
    if (!_webView) {
        self.webView = [[UIWebView alloc] init];
        [self.view addSubview:_webView];
        [_webView release];
    }
    return [[_webView retain] autorelease];
}

@end
View Code ContactListViewController文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface Contact : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *gender;
@property (nonatomic, copy) NSString *phoneNum;
@property (nonatomic, copy) NSString *photo;

@property (nonatomic, retain) UIImage *photoView;

- (instancetype)initWithDic:(NSDictionary *)dic;

@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "Contact.h"

@implementation Contact

- (instancetype)initWithDic:(NSDictionary *)dic {
    self = [super init];
    if (self) {
        [self setValuesForKeysWithDictionary:dic];
        self.photoView = [UIImage imageNamed:dic[@"photo"]];
    }
    return self;
}

- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    NSLog(@"错误处理");
}

- (void)dealloc {
    self.name = nil;
    self.gender = nil;
    self.phoneNum = nil;
    self.photo = nil;
    [super dealloc];
}


@end
View Code Contact文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <UIKit/UIKit.h>
@class Contact;

//为callBtn制定协议方法 实现拨打电话
@protocol MakeACallDelegate <NSObject>

- (void)dial:(NSIndexPath *)indexPath;

@end


@interface CustomContactCell : UITableViewCell
@property (nonatomic, retain) UIImageView *photoView;
@property (nonatomic, retain) UILabel *nameLabel;
@property (nonatomic, retain) UILabel *phoneLabel;
@property (nonatomic, retain) UIButton *callBtn;

@property (nonatomic, retain) NSIndexPath *indexPath;//存储当前点击的cell的索引

@property (nonatomic, assign) id<MakeACallDelegate>delegate;

//2.声明一个联系人对象的属性
@property (nonatomic, retain) Contact *contact;

////1.为cell上的控件赋值
//- (void)configureCell:(Contact *)contact;

@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------

#import "CustomContactCell.h"
#import "Contact.h"

@implementation CustomContactCell

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        //布局子控件
        [self.contentView addSubview:self.photoView];
        [self.contentView addSubview:self.nameLabel];
        [self.contentView addSubview:self.phoneLabel];
        [self.contentView addSubview:self.callBtn];
    }
    return self;
}

#pragma lazy loading 实现控件的创建
//重写getter方法
- (UIImageView *)photoView {
    if (!_photoView) {
        self.photoView = [[[UIImageView alloc] initWithFrame:CGRectMake(10, 5, 50, 50)] autorelease];
        _photoView.layer.cornerRadius = 5.0;
        _photoView.layer.masksToBounds = YES;
    }
    return [[_photoView retain] autorelease];
}
- (UILabel *)nameLabel {
    if (!_nameLabel) {
        self.nameLabel = [[[UILabel alloc] initWithFrame:CGRectMake(70, 10, 80, 40)] autorelease];
    }
    return [[_nameLabel retain] autorelease];
}
- (UILabel *)phoneLabel {
    if (!_phoneLabel) {
        self.phoneLabel = [[[UILabel alloc] initWithFrame:CGRectMake(150, 10, self.frame.size.width/2, 40)] autorelease];
        _nameLabel.textAlignment = NSTextAlignmentLeft;
        _phoneLabel.textColor = [UIColor lightGrayColor];
    }
    return [[_phoneLabel retain] autorelease];
}

- (UIButton *)callBtn {
    if (!_callBtn) {
        self.callBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        _callBtn.frame = CGRectMake(self.frame.size.width - 40, 10, 40, 40);
        [_callBtn setImage:[UIImage imageNamed:@"dita"] forState:UIControlStateNormal];
        //添加触发方法
        [_callBtn addTarget:self action:@selector(handleCall:) forControlEvents:UIControlEventTouchUpInside];
    }
    return [[_callBtn retain] autorelease];
}

- (void)handleCall:(UIButton *)sender {
    if (_delegate && [self.delegate respondsToSelector:@selector(dial:)]) {
        [_delegate dial:self.indexPath];
    }
}
////1.自定义方法 实现cell的控件赋值操作
//- (void)configureCell:(Contact *)contact {
//    self.photoView.image = [UIImage imageNamed:contact.photo];
//    self.nameLabel.text = contact.name;
//    self.phoneLabel.text = contact.phoneNum;
//}
//2.重写setter方法 为cell的控件赋值
- (void)setContact:(Contact *)contact {
    if (_contact != contact) {
        [_contact release];
        _contact = [contact retain];
    }
    self.photoView.image = contact.photoView;
    self.nameLabel.text = contact.name;
    self.phoneLabel.text = contact.phoneNum;
}

- (void)dealloc {
    self.nameLabel = nil;
    self.photoView = nil;
    self.phoneLabel = nil;
    self.callBtn = nil;
    self.indexPath = nil;
    [super dealloc];
}

@end
View Code CustomContactCell文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <UIKit/UIKit.h>
#import "Contact.h"

@interface DetailViewController : UIViewController
@property (nonatomic, retain) Contact *contact;//接收上一界面的联系人对象

@end

#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "DetailViewController.h"
#import "DetailView.h"
@interface DetailViewController () <UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate>

@end

@implementation DetailViewController
//重写loadView 指定视图控制器的根视图
- (void)loadView {
    DetailView *detail = [[DetailView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    //给对应控件赋值
    if (!self.contact.photo) {
        detail.avaterView.image = [UIImage imageNamed:@"grassGreen_avatarEmpty"];
    } else {
    detail.avaterView.image = [UIImage imageNamed:self.contact.photo];
    }
    detail.nameTF.text = self.contact.name;
    detail.genderTF.text = self.contact.gender;
    detail.phoneNumTF.text = self.contact.phoneNum;
    
    self.view = detail;
    [detail release];
}
//配置导航条属性
- (void)customizedNaviBar{
    self.navigationItem.title = @"";
    UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"btn_navigationBar_back"] style:UIBarButtonItemStylePlain target:self action:@selector(handlePop:)];
    self.navigationItem.leftBarButtonItem = left;
    [left release];
    
    self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self customizedNaviBar];
    [self setNotEnabled];//设置进入后控件处于不可编辑状态
    [self addTapGesture];//给头像添加轻拍手势
    
}
#pragma mark - handle Action -
//返回主页
- (void)handlePop:(UIBarButtonItem *)sender {
    [self.navigationController popViewControllerAnimated:YES];
}

- (void)setNotEnabled {
    DetailView *detail = (DetailView *)self.view;
    //关闭用户交互
    detail.userInteractionEnabled = NO;
}

//设置编辑状态
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    //editing  Edit -- YES   Done -- NO
    [super setEditing:editing animated:animated];
    //输入框进入编辑状态
    self.view.userInteractionEnabled = editing;
    //点击Done之后 更新内容
    if (!editing) {
        [self updateData];
    }
}

- (void)updateData {
    DetailView *view = (DetailView *)self.view;
    self.contact.name = view.nameTF.text;
    self.contact.gender = view.genderTF.text;
    self.contact.phoneNum = view.phoneNumTF.text;
    self.contact.photoView = view.avaterView.image;
}

- (void)addTapGesture {
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    [((DetailView *)self.view).avaterView addGestureRecognizer:tap];
    [tap release];
}
//设置或修改头像
- (void)handleTap:(UITapGestureRecognizer *)tap {
    //调用系统相机或图库
    UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从相册中选取", nil];
    [myActionSheet showInView:self.view];
    [myActionSheet release];
}


- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    //呼出的菜单按钮点击后的响应
    if (buttonIndex == actionSheet.cancelButtonIndex)
    {
        NSLog(@"取消");
    }else{
        //相机可用时初始化 pikerController为UIImagePickerControllerSourceTypeCamera
        UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
        switch (buttonIndex)
        {
            case 0:  //打开照相机拍照
                sourceType = UIImagePickerControllerSourceTypeCamera;
                break;
                
            case 1:  //打开本地相册
                sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
                break;
        }
        if (![UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
        {
            //如果源类型 UIImagePickerControllerSourceTypeCamera 不可用时 设置UIImagePickerControllerSourceTypePhotoLibrary 为源类型
            sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        }
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化
        picker.delegate = self;
        picker.allowsEditing = YES;//设置可编辑
        picker.sourceType = sourceType;
        [self presentViewController:picker animated:YES completion:nil];//进入照相界面或相册界面
        [picker release];
    }
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    ((DetailView *)self.view).avaterView.image = [info objectForKey:UIImagePickerControllerEditedImage];//use编辑后的照片;
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end
View Code DetailViewController文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------
#import <UIKit/UIKit.h>

@interface DetailView : UIView

@property (nonatomic, retain) UITextField *nameTF;//姓名
@property (nonatomic, retain) UITextField *genderTF;//性别
@property (nonatomic, retain) UITextField *phoneNumTF;//电话号码

@property (nonatomic, retain) UIImageView *avaterView;//头像


@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "DetailView.h"
#import "UIColor+Addition.h"
@implementation DetailView

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        self.backgroundColor = [UIColor whiteColor];
        [self setUpViews];
    }
    return self;
}
//布局子视图
- (void)setUpViews {
    //头像
    self.avaterView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 80, 80, 80)];
    _avaterView.image = [UIImage imageNamed:@"green_avatarEmpty"];
    _avaterView.userInteractionEnabled = YES;
    _avaterView.layer.cornerRadius = 10;
    _avaterView.layer.masksToBounds = YES;
    [self addSubview:_avaterView];
    [_avaterView release];
    
    //姓名
    self.nameTF = [[UITextField alloc] initWithFrame:CGRectMake(200, 80, 100, 40)];
    _nameTF.backgroundColor = [UIColor lightGreenColor];
    _nameTF.placeholder = @"姓名";
    _nameTF.textColor = [UIColor whiteColor];
    [self addSubview:_nameTF];
    [_nameTF release];
    
    //性别
    self.genderTF = [[UITextField alloc] initWithFrame:CGRectMake(200, 140, 100, 40)];
    _genderTF.placeholder = @"性别";
    _genderTF.backgroundColor = [UIColor lightGreenColor];
    _genderTF.textColor = [UIColor whiteColor];
    [self addSubview:_genderTF];
    [_genderTF release];
    
    //电话号码
    self.phoneNumTF = [[UITextField alloc] initWithFrame:CGRectMake(20, 200, self.frame.size.width - 40, 40)];
    _phoneNumTF.backgroundColor = [UIColor lightGreenColor];
    _phoneNumTF.placeholder = @"手机号";
    _phoneNumTF.textColor = [UIColor whiteColor];
    [self addSubview:_phoneNumTF];
    [_phoneNumTF release];
    
    
}

@end
View Code DetailView文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------

#import <UIKit/UIKit.h>

@interface ChineseToPinyin : NSObject {
    
}

+ (NSString *) pinyinFromChiniseString:(NSString *)string;
+ (char) sortSectionTitle:(NSString *)string; 

@end

#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------
#import "ChineseToPinyin.h"

NSString *FindLetter(int nCode) {
    NSString *strValue = @"";
    switch(nCode) {
        case 6325:
        case 6436:
        case 7571:
        case 7925:
            strValue = @"A";
            break;
        case 6263:
        case 6440:
        case 7040:
        case 7208:
        case 7451:
        case 7733:
        case 7945:
        case 8616:
            strValue = @"AI";
            break;
        case 5847:
        case 5991:
        case 6278:
        case 6577:
        case 6654:
        case 7281:
        case 7907:
        case 8038:
        case 8786:
            strValue = @"AN";
            break;
            strValue = @"ANG";
            break;
        case 5974:
        case 6254:
        case 6427:
        case 6514:
        case 6658:
        case 6959:
        case 7033:
        case 7081:
        case 7365:
        case 8190:
        case 8292:
        case 8643:
        case 8701:
        case 8773:
            strValue = @"AO";
            break;
        case 6056:
        case 6135:
        case 6517:
        case 7857:
        case 8446:
        case 8649:
        case 8741:
            strValue = @"BA";
            break;
        case 6267:
        case 6334:
        case 7494:
            strValue = @"BAI";
            break;
        case 5870:
        case 5964:
        case 7851:
        case 8103:
        case 8113:
        case 8418:
            strValue = @"BAN";
            break;
        case 6182:
        case 6826:
            strValue = @"BANG";
            break;
        case 6165:
        case 7063:
        case 7650:
        case 8017:
        case 8157:
        case 8532:
        case 8621:
            strValue = @"BAO";
            break;
        case 5635:
        case 5873:
        case 5893:
        case 5993:
        case 6141:
        case 6703:
        case 7753:
        case 8039:
        case 8156:
        case 8645:
        case 8725:
            strValue = @"BEI";
            break;
        case 5946:
        case 5948:
        case 7458:
        case 7928:
            strValue = @"BEN";
            break;
        case 6452:
        case 7420:
            strValue = @"BENG";
            break;
        case 5616:
        case 5734:
        case 6074:
        case 6109:
        case 6221:
        case 6333:
        case 6357:
        case 6589:
        case 6656:
        case 6725:
        case 6868:
        case 6908:
        case 6986:
        case 6994:
        case 7030:
        case 7052:
        case 7221:
        case 7815:
        case 7873:
        case 7985:
        case 8152:
        case 8357:
        case 8375:
        case 8387:
        case 8416:
        case 8437:
        case 8547:
        case 8734:
            strValue = @"BI";
            break;
        case 5650:
        case 5945:
        case 6048:
        case 6677:
        case 6774:
        case 7134:
        case 7614:
        case 7652:
        case 7730:
        case 7760:
        case 8125:
        case 8159:
        case 8289:
        case 8354:
        case 8693:
            strValue = @"BIAN";
            break;
        case 7027:
        case 7084:
        case 7609:
        case 7613:
        case 7958:
        case 7980:
        case 8106:
        case 8149:
        case 8707:
        case 8752:
            strValue = @"BIAO";
            break;
        case 8531:
            strValue = @"BIE";
            break;
        case 5747:
        case 6557:
        case 7145:
        case 7167:
        case 7336:
        case 7375:
        case 7587:
        case 7957:
        case 8738:
        case 8762:
            strValue = @"BIN";
            break;
        case 5787:
        case 5891:
        case 6280:
            strValue = @"BING";
            break;
        case 5781:
        case 6403:
        case 6636:
        case 7362:
        case 7502:
        case 7771:
        case 7864:
        case 8030:
        case 8404:
        case 8543:
        case 8559:
            strValue = @"BO";
            break;
        case 6318:
        case 6945:
        case 7419:
        case 7446:
        case 7848:
        case 7863:
        case 8519:
            strValue = @"BU";
            break;
        case 6474:
        case 7769:
            strValue = @"CA";
            break;
            strValue = @"CAI";
            break;
        case 6978:
        case 7078:
        case 7218:
        case 8451:
        case 8785:
            strValue = @"CAN";
            break;
        case 5687:
            strValue = @"CANG";
            break;
        case 6448:
        case 6878:
        case 8309:
        case 8429:
            strValue = @"CAO";
            break;
        case 6692:
            strValue = @"CE";
            break;
        case 6515:
        case 6825:
            strValue = @"CEN";
            break;
        case 6465:
            strValue = @"CENG";
            break;
        case 6639:
        case 6766:
        case 7017:
        case 7230:
        case 7311:
        case 7322:
        case 7363:
        case 7942:
        case 7979:
        case 8135:
            strValue = @"CHA";
            break;
        case 5713:
        case 7846:
        case 8091:
        case 8218:
            strValue = @"CHAI";
            break;
        case 5770:
        case 5838:
        case 6159:
        case 6667:
        case 6893:
        case 6904:
        case 6981:
        case 7031:
        case 7086:
        case 7472:
        case 7688:
        case 7966:
        case 8324:
        case 8580:
            strValue = @"CHAN";
            break;
        case 5686:
        case 5943:
        case 6041:
        case 6137:
        case 6660:
        case 6568:
        case 6749:
        case 7029:
        case 7047:
        case 7438:
        case 7509:
        case 8680:
            strValue = @"CHANG";
            break;
        case 6687:
        case 7443:
        case 8173:
            strValue = @"CHAO";
            break;
        case 5969:
        case 7726:
            strValue = @"CHE";
            break;
        case 5840:
        case 5863:
        case 6251:
        case 6433:
        case 6923:
        case 7201:
        case 7320:
        case 7755:
        case 8619:
            strValue = @"CHEN";
            break;
        case 5609:
        case 5984:
        case 7239:
        case 7263:
        case 7583:
        case 7810:
        case 7881:
        case 7905:
        case 8146:
        case 8241:
        case 8508:
            strValue = @"CHENG";
            break;
        case 5749:
        case 6015:
        case 6061:
        case 6319:
        case 6374:
        case 6420:
        case 6445:
        case 6633:
        case 7042:
        case 7523:
        case 7787:
        case 8023:
        case 8101:
        case 8161:
        case 8231:
        case 8304:
        case 8355:
        case 8388:
        case 8489:
        case 8556:
        case 8746:
            strValue = @"CHI";
            break;
        case 6091:
        case 6671:
        case 6731:
        case 8409:
        case 8430:
            strValue = @"CHONG";
            break;
        case 5717:
        case 6492:
        case 6716:
        case 8112:
        case 8637:
            strValue = @"CHOU";
            break;
        case 5601:
        case 5927:
        case 6680:
        case 6732:
        case 7109:
        case 7238:
        case 7290:
        case 7343:
        case 8150:
        case 8260:
        case 8573:
        case 8777:
            strValue = @"CHU";
            break;
        case 6285:
        case 6408:
        case 7590:
        case 8563:
            strValue = @"CHUAI";
            break;
        case 6622:
        case 6955:
        case 7516:
        case 7843:
        case 8413:
            strValue = @"CHUAN";
            break;
        case 6675:
            strValue = @"CHUANG";
            break;
        case 5879:
        case 7302:
        case 7319:
            strValue = @"CHUI";
            break;
        case 6127:
        case 8040:
        case 8277:
            strValue = @"CHUN";
            break;
        case 7401:
        case 8554:
        case 8626:
            strValue = @"CHUO";
            break;
            strValue = @"CI";
            break;
        case 6075:
        case 6358:
        case 7684:
        case 8043:
        case 8457:
            strValue = @"4337 À≈";
            break;
        case 6042:
        case 6840:
        case 7085:
        case 7193:
        case 7214:
        case 7240:
            strValue = @"CONG";
            break;
        case 7308:
        case 7403:
        case 7577:
            strValue = @"COU";
            break;
        case 6180:
        case 6562:
        case 6607:
        case 7367:
        case 8501:
        case 8530:
        case 8577:
            strValue = @"CU";
            break;
        case 5764:
        case 6305:
        case 7664:
        case 7973:
            strValue = @"CUAN";
            break;
        case 6718:
        case 6145:
        case 6393:
        case 7213:
        case 7333:
        case 7505:
        case 8631:
            strValue = @"CUI";
            break;
        case 6666:
        case 8169:
            strValue = @"CUN";
            break;
        case 5640:
        case 6547:
        case 7566:
        case 7917:
        case 7983:
        case 8078:
        case 8526:
        case 8567:
            strValue = @"CUO";
            break;
        case 6239:
        case 6353:
        case 6410:
        case 6682:
        case 7007:
        case 8155:
        case 8346:
        case 8716:
        case 8718:
            strValue = @"DA";
            break;
        case 6004:
        case 6316:
        case 6523:
        case 6942:
        case 7110:
        case 7173:
        case 8776:
            strValue = @"DAI";
            break;
        case 5757:
        case 6144:
        case 6402:
        case 7373:
        case 7470:
        case 7781:
        case 8067:
        case 8087:
        case 8185:
        case 8376:
            strValue = @"DAN";
            break;
        case 5852:
        case 5942:
        case 6148:
        case 6920:
        case 7724:
        case 7885:
        case 8141:
            strValue = @"DANG";
            break;
        case 6322:
        case 6665:
        case 7514:
        case 8478:
            strValue = @"DAO";
            break;
        case 7929:
            strValue = @"DE";
            break;
        case 6466:
        case 6556:
        case 7413:
        case 7767:
        case 7975:
        case 8403:
            strValue = @"DENG";
            break;
        case 5621:
        case 5765:
        case 5814:
        case 5848:
        case 5901:
        case 5970:
        case 6122:
        case 6454:
        case 7023:
        case 7116:
        case 7260:
        case 7306:
        case 7475:
        case 7738:
        case 7758:
        case 7791:
        case 7965:
        case 8438:
        case 8730:
            strValue = @"DI";
            break;
        case 6439:
            strValue = @"DIA";
            break;
        case 5871:
        case 5967:
        case 6559:
        case 7172:
        case 7868:
        case 8116:
        case 8118:
        case 8401:
        case 8558:
            strValue = @"DIAN";
            break;
        case 7886:
        case 8585:
        case 8684:
            strValue = @"DIAO";
            break;
        case 5976:
        case 6006:
        case 6273:
        case 6409:
        case 7526:
        case 8012:
        case 8183:
        case 8562:
        case 8688:
            strValue = @"DIE";
            break;
        case 5674:
        case 6404:
        case 7164:
        case 7575:
        case 7754:
        case 7814:
        case 8059:
        case 8184:
        case 8490:
            strValue = @"DING";
            break;
        case 7891:
            strValue = @"DIU";
            break;
        case 5977:
        case 6343:
        case 6520:
        case 6528:
        case 7517:
        case 7543:
        case 7556:
        case 7747:
        case 8020:
            strValue = @"DONG";
            break;
        case 6190:
        case 8128:
        case 8229:
        case 8391:
            strValue = @"DOU";
            break;
        case 6022:
        case 6429:
        case 6834:
        case 7292:
        case 7525:
        case 8328:
        case 8338:
        case 8739:
        case 8782:
            strValue = @"DU";
            break;
        case 7318:
        case 7649:
        case 8393:
            strValue = @"DUAN";
            break;
        case 7701:
        case 7713:
        case 7752:
            strValue = @"DUI";
            break;
        case 6771:
        case 7632:
        case 7727:
        case 7766:
        case 7779:
        case 7970:
        case 8527:
            strValue = @"DUN";
            break;
        case 6345:
        case 6365:
        case 6785:
        case 7122:
        case 7876:
        case 8154:
        case 8566:
            strValue = @"DUO";
            break;
        case 5612:
        case 5832:
        case 5844:
        case 5949:
        case 6035:
        case 6113:
        case 6164:
        case 6332:
        case 6721:
        case 6977:
        case 7025:
        case 7378:
        case 7581:
        case 7916:
        case 7941:
        case 8042:
        case 8206:
        case 8689:
            strValue = @"E";
            break;
        case 6176:
        case 6284:
            strValue = @"EN";
            break;
        case 5706:
        case 6939:
        case 7177:
        case 7879:
        case 8025:
        case 8660:
            strValue = @"ER";
            break;
        case 5950:
        case 7732:
            strValue = @"FA";
            break;
        case 6212:
        case 6232:
        case 6506:
        case 7283:
        case 7660:
        case 7818:
        case 8576:
            strValue = @"FAN";
            break;
        case 5890:
        case 7242:
        case 7853:
        case 8419:
        case 8648:
            strValue = @"FANG";
            break;
        case 6032:
        case 6584:
        case 6713:
        case 6839:
        case 6990:
        case 7119:
        case 7328:
        case 7572:
        case 7619:
        case 7673:
        case 7948:
        case 8082:
        case 8267:
        case 8385:
        case 8468:
        case 8613:
        case 8678:
            strValue = @"FEI";
            break;
        case 5739:
        case 6915:
        case 7291:
        case 8687:
        case 8787:
            strValue = @"FEN";
            break;
        case 5726:
        case 5926:
        case 6155:
        case 6384:
        case 6767:
        case 7731:
            strValue = @"FENG";
            break;
            strValue = @"FO";
            break;
        case 8330:
            strValue = @"FOU";
            break;
        case 5775:
        case 5776:
        case 5914:
        case 6029:
        case 6062:
        case 6119:
        case 6142:
        case 6252:
        case 6327:
        case 6505:
        case 6686:
        case 6870:
        case 6985:
        case 7058:
        case 7066:
        case 7106:
        case 7108:
        case 7285:
        case 7471:
        case 7680:
        case 7741:
        case 7774:
        case 7775:
        case 7823:
        case 7991:
        case 8005:
        case 8222:
        case 8261:
        case 8280:
        case 8283:
        case 8479:
        case 8535:
        case 8538:
        case 8654:
        case 8691:
            strValue = @"FU";
            break;
        case 6246:
        case 7056:
        case 7057:
        case 7424:
        case 7837:
            strValue = @" GA";
            break;
        case 5604:
        case 5875:
        case 5982:
        case 7414:
        case 7464:
            strValue = @"GAI";
            break;
        case 5965:
        case 6053:
        case 6247:
        case 6306:
        case 6779:
        case 6838:
        case 6887:
        case 7104:
        case 7347:
        case 7426:
        case 7723:
        case 8065:
        case 8491:
            strValue = @"GAN";
            break;
        case 7716:
        case 7824:
        case 8364:
            strValue = @"GANG";
            break;
        case 5626:
        case 5830:
        case 5912:
        case 6227:
        case 7141:
        case 7332:
        case 7334:
        case 7429:
        case 7915:
            strValue = @"GAO";
            break;
        case 5610:
        case 5678:
        case 5933:
        case 5957:
        case 6010:
        case 6435:
        case 7092:
        case 7501:
        case 7585:
        case 7749:
        case 7951:
        case 8143:
        case 8220:
        case 8420:
        case 8732:
            strValue = @"GE";
            break;
            strValue = @"GEI";
            break;
        case 5608:
        case 6102:
        case 6371:
        case 8462:
            strValue = @"GEN";
            break;
        case 6376:
        case 6657:
        case 7114:
        case 8665:
            strValue = @"GENG";
            break;
        case 7178:
        case 7537:
        case 8228:
        case 8601:
            strValue = @"GONG";
            break;
        case 5694:
        case 5824:
        case 6524:
        case 6960:
        case 7037:
        case 7135:
        case 7259:
        case 7477:
        case 7616:
        case 8349:
        case 8384:
        case 8724:
            strValue = @"GOU";
            break;
        case 5637:
        case 5812:
        case 6152:
        case 6536:
        case 6773:
        case 7284:
        case 7379:
        case 7484:
        case 7486:
        case 7591:
        case 7617:
        case 7813:
        case 7825:
        case 7860:
        case 7932:
        case 8019:
        case 8083:
        case 8233:
        case 8494:
        case 8593:
        case 8681:
        case 8729:
            strValue = @"GU";
            break;
        case 5652:
        case 5820:
        case 6341:
        case 7273:
        case 7550:
        case 8027:
            strValue = @"GUA";
            break;
            strValue = @"GUAI";
            break;
        case 5736:
        case 6124:
        case 6272:
        case 6842:
        case 7834:
        case 8057:
        case 8170:
        case 8704:
            strValue = @"GUAN";
            break;
        case 6359:
        case 6578:
        case 7270:
        case 7555:
            strValue = @"GUANG";
            break;
        case 5648:
        case 5659:
        case 6649:
        case 7003:
        case 7277:
        case 7433:
        case 7448:
        case 8007:
        case 8394:
        case 8657:
        case 8712:
            strValue = @"GUI";
            break;
        case 5782:
        case 7121:
        case 7762:
        case 8671:
            strValue = @"GUN";
            break;
        case 5769:
        case 6266:
        case 6335:
        case 6494:
        case 6538:
        case 6603:
        case 7304:
        case 7529:
        case 8188:
        case 8268:
        case 8269:
            strValue = @"GUO";
            break;
        case 7894:
            strValue = @"HA";
            break;
        case 6443:
        case 7560:
        case 8516:
            strValue = @"HAI";
            break;
        case 5885:
        case 6153:
        case 6294:
        case 6759:
        case 6911:
        case 7447:
        case 7642:
        case 8192:
        case 8205:
        case 8232:
        case 8793:
            strValue = @"HAN";
            break;
        case 6776:
        case 7112:
        case 8194:
            strValue = @"HANG";
            break;
        case 6179:
        case 6222:
        case 6438:
        case 6467:
        case 6909:
        case 6916:
        case 7427:
        case 8009:
        case 8211:
        case 8226:
            strValue = @"HAO";
            break;
        case 5813:
        case 5932:
        case 5954:
        case 6432:
        case 6756:
        case 7434:
        case 7833:
        case 8202:
        case 8234:
        case 8471:
            strValue = @"HE";
            break;
            strValue = @"HEI";
            break;
            strValue = @"HEN";
            break;
        case 6231:
        case 7181:
        case 7276:
            strValue = @"HENG";
            break;
        case 5768:
        case 5774:
        case 5807:
        case 6106:
        case 6214:
        case 6216:
        case 6740:
        case 6792:
            strValue = @"HONG";
            break;
        case 6009:
        case 6565:
        case 6943:
        case 8090:
        case 8383:
        case 8455:
        case 8655:
        case 8731:
            strValue = @"HOU";
            break;
        case 5792:
        case 6392:
        case 6481:
        case 6518:
        case 6609:
        case 6679:
        case 6717:
        case 6816:
        case 6879:
        case 7190:
        case 7346:
        case 7385:
        case 7618:
        case 7635:
        case 7646:
        case 7670:
        case 7672:
        case 7679:
        case 8013:
        case 8032:
        case 8041:
        case 8055:
        case 8343:
        case 8513:
        case 8590:
            strValue = @"HU";
            break;
        case 7072:
        case 7275:
        case 7725:
        case 7892:
            strValue = @"HUA";
            break;
        case 8555:
            strValue = @"HUAI";
            break;
        case 5928:
        case 6140:
        case 6307:
        case 6487:
        case 6621:
        case 6801:
        case 6829:
        case 6881:
        case 6930:
        case 6953:
        case 7157:
        case 7944:
        case 8673:
        case 8763:
            strValue = @"HUAN";
            break;
        case 5882:
        case 6569:
        case 6850:
        case 6874:
        case 6956:
        case 7211:
        case 7533:
        case 8105:
        case 8308:
        case 8382:
        case 8692:
            strValue = @"HUANG";
            break;
        case 5822:
        case 6078:
        case 6086:
        case 6205:
        case 6352:
        case 6360:
        case 6425:
        case 6736:
        case 6807:
        case 6811:
        case 6971:
        case 7132:
        case 7185:
        case 7445:
        case 7703:
        case 8219:
        case 8319:
        case 8766:
            strValue = @"HUI";
            break;
        case 5827:
        case 6638:
        case 6752:
        case 6867:
            strValue = @"HUN";
            break;
        case 5669:
        case 6229:
        case 6311:
        case 6475:
        case 6623:
        case 7856:
        case 7933:
        case 7976:
        case 8175:
        case 8322:
            strValue = @"HUO";
            break;
        case 5629:
        case 5632:
        case 5662:
        case 5705:
        case 5742:
        case 5952:
        case 6024:
        case 6033:
        case 6193:
        case 6210:
        case 6265:
        case 6320:
        case 6350:
        case 6383:
        case 6507:
        case 6553:
        case 6809:
        case 6976:
        case 7087:
        case 7160:
        case 7165:
        case 7314:
        case 7374:
        case 7410:
        case 7411:
        case 7469:
        case 7473:
        case 7487:
        case 7620:
        case 7722:
        case 7831:
        case 7990:
        case 8002:
        case 8104:
        case 8217:
        case 8337:
        case 8339:
        case 8463:
        case 8550:
        case 8611:
        case 8661:
        case 8674:
        case 8757:
        case 8768:
            strValue = @"JI";
            break;
        case 5704:
        case 5903:
        case 6171:
        case 6521:
        case 6804:
        case 6940:
        case 7176:
        case 7409:
        case 7546:
        case 7702:
        case 7882:
        case 7956:
        case 8072:
        case 8142:
        case 8244:
        case 8353:
        case 8434:
        case 8542:
            strValue = @"JIA";
            break;
        case 5752:
        case 5841:
        case 5857:
        case 6149:
        case 6183:
        case 6286:
        case 6853:
        case 6931:
        case 6932:
        case 7144:
        case 7237:
        case 7305:
        case 7407:
        case 7415:
        case 7480:
        case 7489:
        case 7506:
        case 7576:
        case 7790:
        case 7921:
        case 8047:
        case 8148:
        case 8340:
        case 8469:
        case 8534:
        case 8561:
        case 8668:
        case 8721:
            strValue = @"JIAN";
            break;
        case 6092:
        case 6814:
        case 7113:
        case 7154:
        case 7481:
        case 7768:
        case 8180:
        case 8461:
        case 8488:
            strValue = @"JIANG";
            break;
        case 5714:
        case 5753:
        case 6020:
        case 6090:
        case 6256:
        case 6461:
        case 6572:
        case 7015:
        case 7524:
        case 8008:
        case 8052:
        case 8252:
        case 8520:
        case 8551:
        case 8662:
            strValue = @"JIAO";
            break;
        case 5806:
        case 5821:
        case 6255:
        case 6414:
        case 7028:
        case 7061:
        case 7278:
        case 7757:
        case 8060:
        case 8201:
        case 8227:
        case 8441:
        case 8658:
        case 8726:
            strValue = @"JIE";
            break;
        case 5865:
        case 6103:
        case 6132:
        case 6468:
        case 6643:
        case 6659:
        case 7138:
        case 7210:
        case 7340:
        case 7465:
        case 7478:
        case 8138:
            strValue = @"JIN";
            break;
        case 5751:
        case 5869:
        case 6128:
        case 6616:
        case 6729:
        case 6794:
        case 6941:
        case 6982:
        case 7026:
        case 7534:
        case 7554:
        case 7570:
        case 7626:
            strValue = @"JIANG";
            break;
        case 6936:
        case 7671:
            strValue = @"JIONG";
            break;
        case 5754:
        case 6417:
        case 6746:
        case 7249:
        case 7274:
        case 8015:
        case 8053:
        case 8481:
        case 8761:
            strValue = @"JIU";
            break;
        case 5738:
        case 5810:
        case 6036:
        case 6058:
        case 6076:
        case 6268:
        case 6965:
        case 6980:
        case 7202:
        case 7307:
        case 7316:
        case 7323:
        case 7357:
        case 7381:
        case 7488:
        case 7611:
        case 7850:
        case 7924:
        case 8022:
        case 8132:
        case 8153:
        case 8482:
        case 8522:
        case 8565:
        case 8620:
        case 8634:
        case 8722:
            strValue = @"JU";
            break;
        case 5918:
        case 6590:
        case 6824:
        case 7280:
        case 7835:
        case 7935:
        case 7952:
        case 8633:
            strValue = @"JUAN";
            break;
        case 5642:
        case 5667:
        case 5860:
        case 5939:
        case 6207:
        case 6421:
        case 6457:
        case 6469:
        case 6540:
        case 6617:
        case 7062:
        case 7169:
        case 7286:
        case 7351:
        case 7663:
        case 7967:
        case 8574:
        case 8591:
            strValue = @"JUE";
            break;
        case 6260:
        case 8168:
        case 8362:
        case 8769:
            strValue = @"JUN";
            break;
        case 5671:
        case 6339:
        case 7544:
            strValue = @"KA";
            break;
        case 5660:
        case 5978:
        case 6160:
        case 6673:
        case 6693:
        case 7888:
        case 7920:
        case 7939:
            strValue = @"KAI";
            break;
        case 5709:
        case 6108:
        case 7412:
        case 7772:
        case 7811:
            strValue = @"KAN";
            break;
        case 5688:
        case 6742:
        case 7854:
            strValue = @"KANG";
            break;
        case 6974:
        case 7264:
        case 7491:
        case 7877:
            strValue = @"KAO";
            break;
        case 6430:
        case 6519:
        case 6701:
        case 6859:
        case 7076:
        case 7128:
        case 7170:
        case 7380:
        case 7520:
        case 7807:
        case 7861:
        case 7930:
        case 7993:
        case 8066:
        case 8129:
        case 8204:
        case 8282:
        case 8733:
            strValue = @"KE";
            break;
        case 8144:
            strValue = @"KEN";
            break;
        case 7912:
            strValue = @"KENG";
            break;
        case 5737:
        case 6539:
        case 8377:
            strValue = @"KONG";
            break;
        case 6050:
        case 6202:
        case 6321:
        case 7778:
        case 8356:
            strValue = @"KOU";
            break;
        case 5658:
        case 6005:
        case 6423:
        case 7111:
        case 8728:
            strValue = @"KU";
            break;
        case 5708:
            strValue = @"KUA";
            break;
        case 5665:
        case 5906:
        case 6364:
        case 6586:
        case 7558:
            strValue = @"KUAI";
            break;
        case 8737:
            strValue = @"KUAN";
            break;
        case 5818:
        case 5831:
        case 5887:
        case 5959:
        case 6237:
        case 6349:
        case 7094:
        case 7460:
            strValue = @"KUANG";
            break;
        case 5624:
        case 5649:
        case 5771:
        case 6162:
        case 6281:
        case 6413:
        case 6416:
        case 6720:
        case 6951:
        case 7450:
        case 7805:
        case 8606:
        case 8743:
            strValue = @"KUI";
            break;
        case 6204:
        case 6245:
        case 6458:
        case 6618:
        case 6928:
        case 7152:
        case 7841:
        case 8051:
            strValue = @"LIAO";
            break;
        case 5793:
        case 5988:
        case 6270:
        case 6354:
        case 6803:
        case 8483:
        case 8581:
        case 8764:
            strValue = @"LIE";
            break;
        case 6194:
        case 6388:
        case 6555:
        case 6662:
        case 6733:
        case 6964:
        case 7361:
        case 7405:
        case 7602:
        case 7812:
        case 8452:
        case 8579:
        case 8775:
            strValue = @"LIN";
            break;
        case 5925:
        case 6063:
        case 6342:
        case 6482:
        case 6786:
        case 7117:
        case 7258:
        case 7289:
        case 7418:
        case 8186:
        case 8240:
        case 8465:
        case 8676:
            strValue = @"LING";
            break;
        case 6815:
        case 6962:
        case 7082:
        case 7124:
        case 7628:
        case 7654:
        case 7919:
        case 7954:
        case 8050:
        case 8644:
            strValue = @"LIU";
            break;
        case 5966:
        case 6055:
        case 6781:
        case 7171:
        case 7248:
        case 7542:
        case 7735:
        case 8110:
            strValue = @"LONG";
            break;
        case 5745:
        case 6168:
        case 6422:
        case 6548:
        case 7946:
        case 8092:
        case 8179:
        case 8287:
        case 8735:
            strValue = @"LOU";
            break;
        case 6744:
        case 7321:
        case 7586:
        case 7918:
        case 7989:
        case 8158:
            strValue = @"L®π";
            break;
        case 5968:
        case 6303:
        case 6464:
        case 6782:
        case 6843:
        case 6885:
        case 6954:
        case 7220:
        case 7251:
        case 7354:
        case 7391:
        case 7404:
        case 7510:
        case 7545:
        case 7969:
        case 8021:
        case 8056:
        case 8392:
        case 8421:
        case 8652:
            strValue = @"LU";
            break;
        case 5785:
        case 7014:
        case 7279:
        case 8029:
        case 8639:
            strValue = @"LUAN";
            break;
            strValue = @"L®µE";
            break;
            strValue = @"LUN";
            break;
        case 5732:
        case 5789:
        case 6093:
        case 6259:
        case 6291:
        case 6604:
        case 6788:
        case 6880:
        case 7183:
        case 7301:
        case 7565:
        case 7961:
        case 8107:
        case 8635:
            strValue = @"LUO";
            break;
        case 6328:
            strValue = @"M";
            break;
        case 6373:
        case 6579:
        case 7054:
        case 7231:
        case 8301:
            strValue = @"MA";
            break;
        case 5929:
        case 6104:
        case 8618:
            strValue = @"MAI";
            break;
        case 6012:
        case 6503:
        case 7147:
        case 7655:
        case 7960:
        case 8209:
        case 8293:
        case 8709:
        case 8720:
            strValue = @"MAN";
            break;
        case 5888:
        case 6861:
        case 7743:
        case 8294:
            strValue = @"MANG";
            break;
        case 5783:
        case 6066:
        case 6525:
        case 6787:
        case 7203:
        case 7436:
        case 7483:
        case 7503:
        case 7624:
        case 7714:
        case 7806:
        case 8317:
        case 8754:
            strValue = @"MAO";
            break;
        case 6114:
        case 6550:
        case 6613:
        case 6828:
        case 6856:
        case 7325:
        case 7949:
        case 8044:
        case 8139:
        case 8740:
            strValue = @"MEI";
            break;
        case 6249:
        case 7643:
        case 7715:
        case 7845:
            strValue = @"MEN";
            break;
        case 5934:
        case 6189:
        case 6211:
        case 6734:
        case 7592:
        case 7770:
        case 8221:
        case 8276:
        case 8323:
        case 8427:
        case 8431:
            strValue = @"MENG";
            break;
        case 5634:
        case 5855:
        case 6234:
        case 6368:
        case 6455:
        case 6608:
        case 6772:
        case 6921:
        case 6984:
        case 7563:
        case 7682:
        case 8445:
        case 8767:
        case 8771:
            strValue = @"MI";
            break;
        case 6770:
        case 6837:
        case 6847:
        case 7579:
        case 7777:
            strValue = @"MIAN";
            break;
        case 6387:
        case 6967:
        case 7131:
        case 7149:
        case 7234:
        case 7721:
        case 7780:
        case 8037:
            strValue = @"MIAO";
            break;
        case 5631:
        case 6367:
        case 8326:
        case 8390:
            strValue = @"MIE";
            break;
        case 6069:
        case 6526:
        case 6741:
        case 6793:
        case 7137:
        case 7168:
        case 7175:
        case 7710:
        case 8710:
        case 8628:
            strValue = @"MIN";
            break;
        case 5804:
        case 6088:
        case 6873:
        case 7452:
        case 7808:
        case 8504:
            strValue = @"MING";
            break;
            strValue = @"MIU";
            break;
        case 5851:
        case 6052:
        case 6175:
        case 6641:
        case 7038:
        case 7366:
        case 7950:
        case 7987:
        case 8102:
        case 8182:
        case 8586:
        case 8588:
        case 8765:
            strValue = @"MO";
            break;
        case 5716:
        case 6372:
        case 7788:
        case 8254:
        case 8290:
        case 8642:
            strValue = @"MOU";
            break;
        case 5679:
        case 5973:
        case 6057:
        case 6769:
        case 7504:
        case 7866:
            strValue = @"MU";
            break;
        case 6437:
            strValue = @"N";
            break;
        case 6264:
        case 7539:
        case 7953:
        case 8136:
            strValue = @"NA";
            break;
        case 5630:
        case 6021:
        case 6133:
        case 7245:
            strValue = @"NAI";
            break;
        case 6411:
        case 6478:
        case 6479:
        case 7310:
        case 7578:
        case 8279:
        case 8486:
            strValue = @"NAN";
            break;
        case 6313:
        case 6476:
        case 6646:
        case 7457:
            strValue = @"NANG";
            break;
        case 5611:
        case 5981:
        case 6346:
        case 6614:
        case 7207:
        case 7748:
        case 7883:
        case 8245:
            strValue = @"NAO";
            break;
        case 5811:
            strValue = @"NE";
            break;
            strValue = @"NEI";
            break;
        case 7705:
            strValue = @"NEN";
            break;
            strValue = @"NENG";
            break;
        case 5703:
        case 5972:
        case 6605:
        case 6685:
        case 7439:
        case 7627:
        case 7711:
        case 7794:
        case 7874:
        case 8682:
            strValue = @"NI";
            break;
        case 5605:
        case 5994:
        case 7393:
        case 8004:
        case 8651:
        case 8683:
            strValue = @"NIAN";
            break;
            strValue = @"NIANG";
            break;
        case 6064:
        case 7053:
        case 7569:
        case 8433:
            strValue = @"NIAO";
            break;
        case 5877:
        case 6233:
        case 6431:
        case 8208:
        case 8411:
        case 8570:
            strValue = @"NIE";
            break;
            strValue = @"NIN";
            break;
        case 5690:
        case 6344:
        case 6924:
        case 8187:
            strValue = @"NING";
            break;
        case 6580:
        case 6678:
        case 7004:
            strValue = @"NIU";
            break;
        case 5715:
        case 6370:
            strValue = @"NONG";
            break;
        case 8181:
            strValue = @"NOU";
            break;
        case 6983:
        case 7032:
        case 7059:
        case 7069:
            strValue = @"NU";
            break;
        case 7704:
        case 7847:
        case 8412:
            strValue = @"N®µ";
            break;
            strValue = @"NUAN";
            break;
            strValue = @"NUE";
            break;
        case 5748:
        case 6289:
        case 6386:
        case 7927:
            strValue = @"NUO";
            break;
        case 6424:
        case 6462:
            strValue = @"O";
            break;
        case 5809:
        case 6670:
        case 7417:
        case 8178:
            strValue = @"OU";
            break;
        case 6166:
        case 7243:
        case 8365:
            strValue = @"PA";
            break;
        case 5729:
        case 6169:
        case 6363:
            strValue = @"PAI";
            break;
        case 6761:
        case 6790:
        case 8140:
        case 8165:
        case 8320:
        case 8571:
            strValue = @"PAN";
            break;
        case 6561:
        case 6872:
        case 6944:
        case 8306:
            strValue = @"PANG";
            break;
        case 6243:
        case 6583:
        case 6650:
        case 7567:
        case 8069:
            strValue = @"PAO";
            break;
        case 6446:
        case 6490:
        case 7623:
        case 7934:
        case 8512:
        case 8612:
            strValue = @"PEI";
            break;
        case 6852:
            strValue = @"PEN";
            break;
        case 6001:
        case 6456:
        case 6681:
        case 8318:
            strValue = @"PENG";
            break;
        case 5607:
        case 5682:
        case 5880:
        case 5892:
        case 5915:
        case 5960:
        case 6017:
        case 6037:
        case 6308:
        case 6472:
        case 6647:
        case 6836:
        case 7039:
        case 7102:
        case 7233:
        case 7422:
        case 7802:
        case 7828:
        case 7875:
        case 8117:
        case 8166:
        case 8223:
        case 8271:
        case 8589:
            strValue = @"PI";
            break;
        case 5850:
        case 7073:
        case 7490:
        case 7561:
        case 8470:
        case 8568:
            strValue = @"PIAN";
            break;
        case 5666:
        case 6449:
        case 7046:
        case 7146:
        case 7372:
        case 7809:
        case 8310:
            strValue = @"PIAO";
            break;
        case 6054:
        case 7513:
            strValue = @"PIE";
            break;
        case 7041:
        case 6253:
        case 7016:
        case 7315:
        case 7482:
        case 8213:
            strValue = @"PIN";
            break;
        case 5723:
        case 7019:
        case 7250:
        case 8650:
            strValue = @"PING";
            break;
        case 5647:
        case 5922:
        case 7174:
        case 7839:
        case 7862:
        case 8011:
        case 8345:
            strValue = @"PO";
            break;
        case 5786:
        case 6269:
            strValue = @"POU";
            break;
        case 5773:
        case 6459:
        case 6863:
        case 6907:
        case 7217:
        case 7511:
        case 7968:
        case 7972:
        case 8575:
            strValue = @"PU";
            break;
        case 5633:
        case 5725:
        case 5963:
        case 6027:
        case 6046:
        case 6089:
        case 6129:
        case 6134:
        case 6161:
        case 6213:
        case 6366:
        case 6450:
        case 6508:
        case 6510:
        case 6764:
        case 6831:
        case 7075:
        case 7118:
        case 7187:
        case 7189:
        case 7229:
        case 7271:
        case 7342:
        case 7440:
        case 7605:
        case 7687:
        case 7712:
        case 7751:
        case 8193:
        case 8251:
        case 8264:
        case 8475:
        case 8476:
        case 8572:
        case 8702:
        case 8772:
            strValue = @"QI";
            break;
        case 6154:
        case 8736:
            strValue = @"QIA";
            break;
        case 5727:
        case 5761:
        case 5868:
        case 6023:
        case 6045:
        case 6071:
        case 6271:
        case 6509:
        case 6705:
        case 6727:
        case 6925:
        case 6926:
        case 6929:
        case 7155:
        case 7293:
        case 7541:
        case 7709:
        case 7852:
        case 8215:
        case 8373:
            strValue = @"QIAN";
            break;
        case 6762:
        case 7045:
        case 7341:
        case 7408:
        case 7633:
        case 7926:
        case 7947:
        case 7974:
        case 8163:
        case 8262:
        case 8439:
        case 8536:
            strValue = @"QIANG";
            break;
        case 5668:
        case 5829:
        case 5859:
        case 6081:
        case 6529:
        case 6724:
        case 6730:
        case 7352:
        case 7745:
        case 8546:
        case 8719:
            strValue = @"QIAO";
            break;
        case 5907:
        case 6711:
        case 7010:
        case 7492:
        case 7938:
        case 8370:
            strValue = @"QIE";
            break;
        case 6043:
        case 6276:
        case 6336:
        case 6426:
        case 6463:
        case 6858:
        case 7353:
        case 7923:
        case 8291:
        case 8432:
            strValue = @"QIN";
            break;
        case 6060:
        case 6485:
        case 7349:
        case 7764:
        case 8263:
        case 8332:
        case 8368:
        case 8605:
        case 8675:
        case 8784:
            strValue = @"QING";
            break;
        case 5886:
        case 6068:
        case 8123:
        case 8243:
        case 8344:
        case 8528:
        case 8638:
            strValue = @"QIONG";
            break;
        case 5720:
        case 5947:
        case 6576:
        case 6848:
        case 6947:
        case 6957:
        case 7317:
        case 7468:
        case 8216:
        case 8239:
        case 8288:
        case 8435:
        case 8460:
        case 8690:
        case 8792:
            strValue = @"QIU";
            break;
        case 5816:
        case 5930:
        case 6201:
        case 6230:
        case 6511:
        case 6573:
        case 6754:
        case 7219:
        case 7479:
        case 7512:
        case 7552:
        case 7678:
        case 7765:
        case 8119:
        case 8248:
        case 8329:
        case 8480:
        case 8636:
        case 8781:
            strValue = @"QU";
            break;
        case 5825:
        case 6085:
        case 6710:
        case 7125:
        case 7390:
        case 7816:
        case 7893:
        case 8273:
        case 8360:
        case 8760:
            strValue = @"QUAN";
            break;
        case 6755:
        case 6758:
        case 7708:
            strValue = @"QUE";
            break;
        case 6950:
            strValue = @"QUN";
            break;
        case 6059:
        case 8237:
        case 8755:
            strValue = @"RAN";
            break;
        case 7692:
        case 8006:
            strValue = @"RANG";
            break;
        case 6073:
        case 7012:
        case 7267:
            strValue = @"RAO";
            break;
            strValue = @"RE";
            break;
        case 5680:
        case 6083:
        case 6156:
        case 6631:
        case 7377:
        case 7994:
        case 8137:
            strValue = @"REN";
            break;
            strValue = @"RENG";
            break;
            strValue = @"RI";
            break;
        case 6541:
        case 6585:
        case 7337:
        case 7532:
        case 8278:
            strValue = @"RONG";
            break;
        case 8459:
        case 8569:
        case 8723:
            strValue = @"ROU";
            break;
        case 6174:
        case 6224:
        case 6473:
        case 6818:
        case 6865:
        case 6906:
        case 7140:
        case 7908:
        case 8164:
        case 8212:
            strValue = @"RU";
            break;
        case 7535:
            strValue = @"RUAN";
            break;
        case 6039:
        case 6208:
        case 7236:
        case 7803:
        case 8224:
            strValue = @"RUI";
            break;
            strValue = @"RUN";
            break;
        case 5728:
        case 8372:
            strValue = @"RUO";
            break;
        case 5606:
        case 5677:
        case 7493:
        case 7559:
        case 7610:
            strValue = @"SA";
            break;
        case 6471:
            strValue = @"SAI";
            break;
        case 6644:
        case 7507:
        case 8454:
            strValue = @"SAN";
            break;
        case 6290:
        case 7763:
        case 8210:
            strValue = @"SANG";
            break;
        case 6003:
        case 7150:
        case 7156:
        case 7593:
        case 8094:
        case 8694:
            strValue = @"SAO";
            break;
            strValue = @"SE";
            break;
            strValue = @"SEN";
            break;
            strValue = @"SENG";
            break;
        case 6394:
        case 7606:
        case 7901:
        case 8080:
        case 8436:
        case 8614:
        case 8672:
            strValue = @"SHA";
            break;
        case 8507:
            strValue = @"SHAI";
            break;
        case 5663:
        case 5808:
        case 5923:
        case 5979:
        case 6047:
        case 6890:
        case 7009:
        case 7051:
        case 7083:
        case 7594:
        case 7844:
        case 8062:
        case 8321:
        case 8414:
        case 8539:
        case 8713:
            strValue = @"SHAN";
            break;
        case 5980:
        case 7120:
        case 7368:
        case 7656:
        case 8592:
            strValue = @"SHANG";
            break;
        case 5931:
        case 6070:
        case 6891:
        case 7228:
        case 8366:
        case 8425:
            strValue = @"SHAO";
            break;
        case 5639:
        case 5760:
        case 6606:
        case 6860:
        case 7608:
        case 7820:
        case 8774:
            strValue = @"SHE";
            break;
        case 5837:
        case 6123:
        case 6351:
        case 6841:
        case 7309:
        case 7547:
        case 7982:
        case 8255:
            strValue = @"SHEN";
            break;
        case 6551:
        case 7441:
        case 7782:
        case 8347:
            strValue = @"SHENG";
            break;
        case 5854:
        case 5985:
        case 6110:
        case 6173:
        case 6317:
        case 7388:
        case 7459:
        case 7634:
        case 7870:
        case 8307:
        case 8334:
        case 8363:
        case 8525:
        case 8669:
        case 8685:
            strValue = @"SHI";
            break;
        case 6587:
        case 7123:
        case 8428:
            strValue = @"SHOU";
            break;
        case 5731:
        case 5951:
        case 6136:
        case 6283:
        case 6780:
        case 6888:
        case 7013:
        case 7508:
        case 7582:
        case 7988:
            strValue = @"SHU";
            break;
        case 6407:
            strValue = @"SHUA";
            break;
        case 8316:
            strValue = @"SHUAI";
            break;
        case 6737:
        case 6844:
            strValue = @"SHUAN";
            break;
        case 7055:
            strValue = @"SHUANG";
            break;
            strValue = @"SHUI";
            break;
            strValue = @"SHUN";
            break;
        case 6184:
        case 6287:
        case 6989:
        case 7335:
        case 7869:
            strValue = @"SHUO";
            break;
        case 5643:
        case 5778:
        case 5944:
        case 6348:
        case 6765:
        case 6784:
        case 6889:
        case 7006:
        case 7065:
        case 7133:
        case 7675:
        case 7940:
        case 8024:
        case 8174:
        case 8247:
        case 8351:
            strValue = @"SI";
            break;
        case 5801:
        case 6131:
        case 6534:
        case 6552:
        case 6676:
        case 6704:
        case 6833:
        case 8121:
            strValue = @"SONG";
            break;
        case 5937:
        case 6220:
        case 6418:
        case 6453:
        case 6640:
        case 6849:
        case 7612:
        case 7804:
        case 7943:
        case 8284:
            strValue = @"SOU";
            break;
        case 5777:
        case 5853:
        case 6188:
        case 6428:
        case 6726:
        case 6819:
        case 8389:
        case 8602:
        case 8653:
            strValue = @"SU";
            break;
        case 6601:
            strValue = @"SUAN";
            break;
        case 5839:
        case 6120:
        case 6901:
        case 6968:
        case 7661:
        case 7785:
        case 7801:
            strValue = @"SUI";
            break;
        case 6105:
        case 6588:
        case 6624:
        case 7330:
        case 8632:
            strValue = @"SUN";
            break;
        case 6379:
        case 6434:
        case 6442:
        case 7022:
        case 7288:
        case 7792:
        case 8440:
            strValue = @"SUO";
            break;
        case 6743:
        case 6866:
        case 6961:
        case 7329:
        case 7719:
        case 7872:
        case 8533:
        case 8703:
            strValue = @"TA";
            break;
        case 5902:
        case 6223:
        case 6330:
        case 7070:
        case 7536:
        case 7638:
        case 7849:
        case 8544:
        case 8656:
            strValue = @"TAI";
            break;
        case 5916:
        case 6903:
        case 7428:
        case 7694:
        case 7867:
        case 7936:
        case 8191:
            strValue = @"TAN";
            break;
        case 5746:
        case 6491:
        case 6871:
        case 7209:
        case 7344:
        case 7906:
        case 7959:
        case 8177:
        case 8305:
        case 8311:
        case 8442:
        case 8517:
            strValue = @"TANG";
            break;
        case 5627:
        case 6391:
        case 6812:
        case 7226:
        case 7666:
            strValue = @"TAO";
            break;
            strValue = @"1845 ≤Õ";
            break;
        case 6315:
        case 7693:
        case 7911:
            strValue = @"TE";
            break;
        case 7588:
            strValue = @"TENG";
            break;
        case 5735:
        case 6709:
        case 6949:
        case 7130:
        case 8035:
        case 8151:
        case 8514:
            strValue = @"TI";
            break;
        case 6261:
        case 6735:
        case 6757:
        case 7369:
        case 7817:
            strValue = @"TIAN";
            break;
        case 5712:
        case 7686:
        case 8127:
        case 8272:
        case 8352:
        case 8448:
        case 8622:
        case 8670:
        case 8756:
            strValue = @"TIAO";
            break;
        case 6138:
        case 8749:
            strValue = @"TIE";
            break;
        case 6080:
        case 6167:
        case 7035:
        case 7272:
        case 7890:
        case 8249:
        case 8610:
            strValue = @"TING";
            break;
        case 5701:
        case 5758:
        case 6077:
        case 6444:
        case 6690:
        case 6892:
        case 7737:
            strValue = @"TONG";
            break;
        case 7855:
        case 7822:
        case 8727:
            strValue = @"TOU";
            break;
        case 6002:
        case 6117:
        case 6143:
        case 7842:
        case 8509:
            strValue = @"TU";
            break;
        case 6250:
        case 6972:
            strValue = @"TUAN";
            break;
        case 7653:
            strValue = @"TUI";
            break;
        case 5759:
        case 6629:
        case 7453:
        case 7564:
            strValue = @"TUN";
            break;
        case 5617:
        case 5702:
        case 5971:
        case 6653:
        case 6791:
        case 7256:
        case 7262:
        case 7350:
        case 7740:
        case 8374:
        case 8502:
        case 8541:
        case 8630:
            strValue = @"TUO";
            break;
        case 5684:
        case 7020:
        case 7580:
            strValue = @"WA";
            break;
            strValue = @"WAI";
            break;
        case 5664:
        case 6025:
        case 6150:
        case 7093:
        case 7126:
        case 7194:
        case 7568:
        case 7821:
        case 8274:
            strValue = @"WAN";
            break;
        case 5672:
        case 6244:
        case 6715:
        case 7394:
        case 8745:
            strValue = @"WANG";
            break;
        case 5743:
        case 5835:
        case 5881:
        case 5883:
        case 6158:
        case 6217:
        case 6488:
        case 6501:
        case 6543:
        case 6545:
        case 6611:
        case 6612:
        case 6739:
        case 6777:
        case 6802:
        case 6822:
        case 6952:
        case 7024:
        case 7166:
        case 7224:
        case 7406:
        case 7631:
        case 7648:
        case 8084:
        case 8426:
        case 8659:
            strValue = @"WEI";
            break;
        case 5656:
        case 6751:
        case 6775:
        case 7223:
        case 8609:
            strValue = @"WEN";
            break;
        case 6178:
        case 6219:
            strValue = @"WENG";
            break;
        case 5733:
        case 6111:
        case 6502:
        case 6855:
        case 7531:
        case 7750:
        case 8627:
            strValue = @"WO";
            break;
        case 5603:
        case 5685:
        case 5867:
        case 5889:
        case 5956:
        case 6044:
        case 6377:
        case 6648:
        case 6668:
        case 6672:
        case 6820:
        case 6927:
        case 6935:
        case 6992:
        case 7036:
        case 7080:
        case 7227:
        case 7485:
        case 7641:
        case 8036:
        case 8045:
        case 8077:
        case 8258:
        case 8640:
        case 8789:
            strValue = @"WU";
            break;
        case 5750:
        case 5766:
        case 5884:
        case 5913:
        case 6130:
        case 6163:
        case 6191:
        case 6241:
        case 6381:
        case 6567:
        case 6630:
        case 6750:
        case 6827:
        case 6832:
        case 6979:
        case 7050:
        case 7184:
        case 7356:
        case 7456:
        case 7474:
        case 7604:
        case 7668:
        case 7689:
        case 7691:
        case 8010:
        case 8122:
        case 8265:
        case 8303:
        case 8312:
        case 8410:
        case 8424:
        case 8443:
        case 8449:
        case 8466:
        case 8521:
        case 8791:
            strValue = @"XI";
            break;
        case 6340:
        case 6582:
        case 6958:
        case 7206:
        case 7252:
        case 7744:
        case 8093:
        case 8333:
        case 8779:
            strValue = @"XIA";
            break;
        case 5794:
        case 5823:
        case 6040:
        case 6118:
        case 6226:
        case 6513:
        case 6593:
        case 6963:
        case 7021:
        case 7515:
        case 7662:
        case 7676:
        case 8034:
        case 8079:
        case 8225:
        case 8358:
        case 8444:
        case 8503:
        case 8548:
        case 8549:
        case 8617:
            strValue = @"XIAN";
            break;
        case 6028:
        case 6157:
        case 6635:
        case 6652:
        case 7088:
        case 7129:
        case 8313:
        case 8663:
        case 8747:
            strValue = @"XIANG";
            break;
        case 6356:
        case 6537:
        case 6876:
        case 6948:
        case 7071:
        case 7115:
        case 7241:
        case 7253:
        case 8257:
        case 8367:
        case 8379:
        case 8744:
            strValue = @"XIAO";
            break;
        case 5741:
        case 5784:
        case 5936:
        case 5938:
        case 6215:
        case 6302:
        case 6619:
        case 6661:
        case 6845:
        case 6912:
        case 6966:
        case 7105:
        case 7151:
        case 7331:
        case 7339:
        case 8583:
            strValue = @"XIE";
            break;
        case 5622:
        case 6016:
        case 7431:
        case 7607:
        case 8646:
            strValue = @"XIN";
            break;
        case 5874:
        case 6084:
        case 6309:
        case 6712:
        case 7742:
            strValue = @"XING";
            break;
        case 6026:
            strValue = @"XIONG";
            break;
        case 6361:
        case 6522:
        case 6642:
        case 6651:
        case 6869:
        case 8028:
        case 8587:
        case 8759:
            strValue = @"XIU";
            break;
        case 5828:
        case 5935:
        case 5955:
        case 6203:
        case 6810:
        case 6851:
        case 7179:
        case 7282:
        case 7667:
        case 7776:
        case 8167:
        case 8458:
        case 8515:
            strValue = @"XU";
            break;
        case 5756:
        case 5846:
        case 6170:
        case 6279:
        case 6789:
        case 6854:
        case 6886:
        case 7215:
        case 7324:
        case 7449:
        case 7637:
        case 7651:
        case 7759:
        case 7871:
        case 7964:
        case 8071:
            strValue = @"XUAN";
            break;
        case 5842:
        case 7720:
        case 8529:
        case 8708:
            strValue = @"XUE";
            break;
        case 5767:
        case 5908:
        case 5987:
        case 6087:
        case 6101:
        case 6206:
        case 6225:
        case 6530:
        case 6563:
        case 6620:
        case 6694:
        case 6813:
        case 6817:
        case 7454:
        case 8131:
        case 8524:
        case 8664:
            strValue = @"XUN";
            break;
        case 5683:
        case 5975:
        case 6275:
        case 6512:
        case 6934:
        case 7011:
        case 7180:
        case 7266:
        case 7518:
        case 7728:
        case 7793:
        case 8073:
            strValue = @"YA";
            break;
        case 5641:
        case 5645:
        case 5718:
        case 5740:
        case 5780:
        case 5861:
        case 5917:
        case 5919:
        case 6030:
        case 6146:
        case 6535:
        case 6691:
        case 6738:
        case 6753:
        case 6846:
        case 6857:
        case 6991:
        case 7044:
        case 7192:
        case 7360:
        case 7444:
        case 7557:
        case 7645:
        case 7827:
        case 8359:
        case 8506:
        case 8742:
        case 8748:
        case 8790:
            strValue = @"YAN";
            break;
        case 6564:
        case 6683:
        case 7630:
        case 7640:
        case 7706:
        case 8253:
        case 8717:
            strValue = @"YANG";
            break;
        case 5618:
        case 5619:
        case 6326:
        case 6542:
        case 6570:
        case 7159:
        case 7182:
        case 7235:
        case 7387:
        case 7455:
        case 7540:
        case 7902:
        case 8046:
        case 8126:
        case 8477:
        case 8705:
            strValue = @"YAO";
            break;
        case 5644:
        case 5843:
        case 5894:
        case 6262:
        case 7442:
        case 7639:
        case 7884:
            strValue = @"YE";
            break;
        case 5655:
        case 5657:
        case 5670:
        case 5693:
        case 5711:
        case 5817:
        case 5961:
        case 5992:
        case 6018:
        case 6051:
        case 6072:
        case 6218:
        case 6236:
        case 6240:
        case 6258:
        case 6314:
        case 6329:
        case 6355:
        case 6362:
        case 6441:
        case 6470:
        case 6527:
        case 6558:
        case 6602:
        case 6634:
        case 6688:
        case 6689:
        case 6708:
        case 6884:
        case 6938:
        case 7068:
        case 7143:
        case 7376:
        case 7383:
        case 7461:
        case 7629:
        case 7658:
        case 7784:
        case 7838:
        case 7955:
        case 7978:
        case 8074:
        case 8089:
        case 8115:
        case 8120:
        case 8270:
        case 8415:
        case 8464:
        case 8472:
        case 8493:
        case 8780:
            strValue = @"YI";
            break;
        case 5623:
        case 5920:
        case 5983:
        case 6007:
        case 6065:
        case 6337:
        case 6419:
        case 6594:
        case 6625:
        case 6806:
        case 7519:
        case 7887:
        case 8111:
        case 8230:
        case 8615:
        case 8624:
            strValue = @"YIN";
            break;
        case 5788:
        case 5911:
        case 6067:
        case 6094:
        case 6126:
        case 6151:
        case 6186:
        case 6292:
        case 6451:
        case 6663:
        case 6862:
        case 6875:
        case 6913:
        case 7188:
        case 7212:
        case 7326:
        case 7584:
        case 8048:
        case 8108:
        case 8203:
        case 8331:
            strValue = @"YING";
            break;
        case 6401:
            strValue = @"YO";
            break;
        case 5724:
        case 5953:
        case 6013:
        case 6415:
        case 6728:
        case 7163:
        case 7962:
        case 8014:
        case 8711:
        case 8751:
            strValue = @"YONG";
            break;
        case 5653:
        case 5692:
        case 5707:
        case 6112:
        case 6115:
        case 6121:
        case 6347:
        case 6483:
        case 6922:
        case 7254:
        case 7364:
        case 7527:
        case 7880:
        case 8064:
        case 8236:
        case 8242:
        case 8286:
        case 8647:
        case 8778:
        case 8788:
            strValue = @"YOU";
            break;
        case 5614:
        case 5625:
        case 5681:
        case 5722:
        case 5836:
        case 5845:
        case 6139:
        case 6187:
        case 6277:
        case 6484:
        case 6486:
        case 6546:
        case 6592:
        case 6632:
        case 6637:
        case 6655:
        case 6748:
        case 6987:
        case 6993:
        case 7005:
        case 7090:
        case 7204:
        case 7437:
        case 7476:
        case 7573:
        case 7603:
        case 7622:
        case 7647:
        case 7659:
        case 7718:
        case 7858:
        case 8033:
        case 8054:
        case 8085:
        case 8086:
        case 8130:
        case 8133:
        case 8266:
        case 8285:
        case 8336:
        case 8407:
        case 8408:
        case 8607:
        case 8625:
            strValue = @"YU";
            break;
        case 5989:
        case 6011:
        case 6282:
        case 6768:
        case 7034:
        case 7205:
        case 7358:
        case 7528:
        case 7783:
        case 8016:
        case 8302:
        case 8378:
        case 8629:
            strValue = @"YUAN";
            break;
        case 5763:
        case 6914:
        case 7348:
        case 7530:
        case 7865:
            strValue = @"YUE";
            break;
        case 5909:
        case 6031:
        case 6581:
        case 6702:
        case 6719:
        case 7101:
        case 7225:
        case 7370:
        case 7432:
        case 7521:
        case 7657:
            strValue = @"YUN";
            break;
        case 6257:
        case 6338:
            strValue = @"ZA";
            break;
        case 6544:
        case 7162:
            strValue = @"ZAI";
            break;
        case 7222:
        case 7435:
        case 8402:
        case 8456:
        case 8485:
        case 8641:
            strValue = @"ZAN";
            break;
        case 6242:
        case 7064:
        case 7416:
            strValue = @"ZANG";
            break;
        case 6380:
            strValue = @"ZAO";
            break;
        case 5638:
        case 8369:
        case 5651:
        case 6385:
        case 6493:
        case 6937:
        case 7430:
        case 8348:
        case 8423:
            strValue = @"ZE";
            break;
            strValue = @"ZEI";
            break;
        case 5858:
            strValue = @"ZEN";
            break;
        case 7153:
        case 7421:
        case 7832:
        case 7913:
            strValue = @"ZENG";
            break;
        case 6610:
        case 6274:
        case 6324:
        case 6369:
        case 6378:
        case 7736:
        case 8068:
        case 8238:
        case 8794:
            strValue = @"ZHA";
            break;
        case 7746:
        case 8109:
            strValue = @"ZHAI";
            break;
        case 5862:
        case 6288:
        case 7625:
            strValue = @"ZHAN";
            break;
        case 5675:
        case 5921:
        case 6504:
        case 6554:
        case 6615:
        case 7049:
        case 7216:
        case 8315:
            strValue = @"ZHANG";
            break;
        case 5815:
        case 7294:
        case 7840:
        case 8341:
            strValue = @"ZHAO";
            break;
        case 5856:
        case 6301:
        case 7247:
        case 7392:
        case 7761:
        case 8049:
        case 8162:
        case 8256:
        case 8487:
            strValue = @"ZHE";
            break;
        case 5958:
        case 6172:
        case 6805:
        case 7139:
        case 7269:
        case 7327:
        case 7384:
        case 7466:
        case 7551:
        case 7562:
        case 7685:
        case 7819:
        case 8001:
        case 8018:
        case 8380:
            strValue = @"ZHEN";
            break;
        case 5826:
        case 6531:
        case 6571:
        case 7859:
        case 7903:
        case 8361:
            strValue = @"ZHENG";
            break;
        case 5620:
        case 5876:
        case 5904:
        case 5990:
        case 6038:
        case 6293:
        case 6489:
        case 6669:
        case 6973:
        case 6975:
        case 7079:
        case 7246:
        case 7255:
        case 7257:
        case 7268:
        case 7382:
        case 7389:
        case 7462:
        case 7553:
        case 7589:
        case 7677:
        case 7683:
        case 7773:
        case 7984:
        case 8026:
        case 8075:
        case 8246:
        case 8474:
        case 8505:
        case 8537:
        case 8557:
        case 8560:
        case 8584:
        case 8603:
            strValue = @"ZHI";
            break;
        case 5803:
        case 7981:
        case 8314:
        case 8417:
        case 8564:
            strValue = @"ZHONG";
            break;
        case 6107:
        case 6390:
        case 7008:
        case 7091:
        case 7107:
        case 7548:
        case 7756:
        case 8406:
        case 8492:
            strValue = @"ZHOU";
            break;
        case 5689:
        case 5710:
        case 5905:
        case 6049:
        case 6079:
        case 6808:
        case 6830:
        case 6883:
        case 7244:
        case 7338:
        case 7345:
        case 7636:
        case 7889:
        case 8070:
        case 8081:
        case 8335:
        case 8371:
        case 8422:
        case 8467:
        case 8578:
        case 8770:
            strValue = @"ZHU";
            break;
            strValue = @"ZHUA";
            break;
            strValue = @"ZHUAI";
            break;
        case 6389:
        case 6645:
        case 8207:
            strValue = @"ZHUAN";
            break;
        case 5755:
            strValue = @"ZHUANG";
            break;
        case 6723:
        case 7077:
        case 7136:
            strValue = @"ZHUI";
            break;
        case 7538:
        case 8124:
            strValue = @"ZHUN";
            break;
        case 5730:
        case 5834:
        case 6310:
        case 6823:
        case 6835:
        case 6910:
        case 7644:
        case 7690:
        case 7729:
        case 7977:
            strValue = @"ZHUO";
            break;
        case 5849:
        case 6549:
        case 7002:
        case 7060:
        case 7127:
        case 7287:
        case 7402:
        case 7463:
        case 7707:
        case 7786:
        case 7937:
        case 7986:
        case 8172:
        case 8342:
        case 8450:
        case 8484:
        case 8594:
        case 8604:
        case 8623:
        case 8686:
        case 8758:
            strValue = @"ZI";
            break;
        case 5744:
        case 7574:
        case 8453:
            strValue = @"ZONG";
            break;
        case 5833:
        case 5878:
        case 5924:
        case 7067:
        case 8677:
            strValue = @"ZOU";
            break;
        case 5762:
        case 6147:
        case 7963:
            strValue = @"ZU";
            break;
        case 6312:
        case 7158:
        case 8582:
            strValue = @"ZUAN";
            break;
        case 6209:
            strValue = @"ZUI";
            break;
        case 6304:
        case 7355:
        case 8714:
            strValue = @"ZUN";
            break;
        case 5872:
        case 6382:
        case 6460:
        case 6684:
        case 7549:
        case 7681:
            strValue = @"ZUO";
            break;
        default:
            if(nCode >= 1601 && nCode <= 1602)
            {
                strValue = @"A";
                break;
            }
            if(nCode >= 1603 && nCode <= 1615)
            {
                strValue = @"AI";
                break;
            }
            if(nCode >= 1616 && nCode <= 1624)
            {
                strValue = @"AN";
                break;
            }
            if(nCode >= 1625 && nCode <= 1627)
            {
                strValue = @"ANG";
                break;
            }
            if(nCode >= 1628 && nCode <= 1636)
            {
                strValue = @"AO";
                break;
            }
            if(nCode >= 1637 && nCode <= 1654)
            {
                strValue = @"BA";
                break;
            }
            if(nCode >= 1655 && nCode <= 1662)
            {
                strValue = @"BAI";
                break;
            }
            if(nCode >= 1663 && nCode <= 1677)
            {
                strValue = @"BAN";
                break;
            }
            if(nCode >= 1678 && nCode <= 1689)
            {
                strValue = @"BANG";
                break;
            }
            if(nCode >= 1690 && nCode <= 1712)
            {
                strValue = @"BAO";
                break;
            }
            if(nCode >= 1713 && nCode <= 1727)
            {
                strValue = @"BEI";
                break;
            }
            if(nCode >= 1728 && nCode <= 1731)
            {
                strValue = @"BEN";
                break;
            }
            if(nCode >= 1732 && nCode <= 1737)
            {
                strValue = @"BENG";
                break;
            }
            if(nCode>1738 && nCode <= 1761)
            {
                strValue = @"BI";
                break;
            }
            if(nCode >= 1762 && nCode <= 1773)
            {
                strValue = @"BIAN";
                break;
            }
            if(nCode >= 1774 && nCode <= 1777)
            {
                strValue = @"BIAO";
                break;
            }
            if(nCode >= 1778 && nCode <= 1781)
            {
                strValue = @"BIE";
                break;
            }
            if(nCode >= 1782 && nCode <= 1787)
            {
                strValue = @"BIN";
                break;
            }
            if(nCode >= 1788 && nCode <= 1794)
            {
                strValue = @"BING";
                break;
            }
            if(nCode >= 1801 && nCode <= 1802)
            {
                strValue = @"BING";
                break;
            }
            if(nCode >= 1803 && nCode <= 1821)
            {
                strValue = @"BO";
                break;
            }
            if(nCode >= 1822 && nCode <= 1832)
            {
                strValue = @"BU";
                break;
            }
            if(nCode==1833)
            {
                strValue = @"CA";
                break;
            }
            if(nCode >= 1834 && nCode <= 1844)
            {
                strValue = @"CAI";
                break;
            }
            if(nCode >= 1845 && nCode <= 1851)
            {
                strValue = @"CAN";
                break;
            }
            if(nCode >= 1852 && nCode <= 1856)
            {
                strValue = @"CANG";
                break;
            }
            if(nCode >= 1857 && nCode <= 1861)
            {
                strValue = @"CAO";
                break;
            }
            if(nCode >= 1862 && nCode <= 1866)
            {
                strValue = @"CE";
                break;
            }
            if(nCode >= 1867 && nCode <= 1868)
            {
                strValue = @"CENG";
                break;
            }
            if(nCode >= 1869 && nCode <= 1879)
            {
                strValue = @"CHA";
                break;
            }
            if(nCode >= 1880 && nCode <= 1882)
            {
                strValue = @"CHAI";
                break;
            }
            if(nCode >= 1883 && nCode <= 1892)
            {
                strValue = @"CHAN";
                break;
            }
            if(nCode >= 1893 && nCode <= 1911)
            {
                strValue = @"CHANG";
                break;
            }
            if(nCode >= 1912 && nCode <= 1920)
            {
                strValue = @"CHAO";
                break;
            }
            if(nCode >= 1921 && nCode <= 1926)
            {
                strValue = @"CHE";
                break;
            }
            if(nCode >= 1927 && nCode <= 1936)
            {
                strValue = @"CHEN";
                break;
            }
            if(nCode >= 1937 && nCode <= 1951)
            {
                strValue = @"CHENG";
                break;
            }
            if(nCode >= 1952 && nCode <= 1967)
            {
                strValue = @"CHI";
                break;
            }
            if(nCode >= 1968 && nCode <= 1972)
            {
                strValue = @"CHONG";
                break;
            }
            if(nCode >= 1973 && nCode <= 1984)
            {
                strValue = @"CHOU";
                break;
            }
            if(nCode >= 1985 && nCode <= 2006)
            {
                strValue = @"CHU";
                break;
            }
            if(nCode==2007)
            {
                strValue = @"CHUAI";
                break;
            }
            if(nCode >= 2008 && nCode <= 2014)
            {
                strValue = @"CHUAN";
                break;
            }
            if(nCode >= 2015 && nCode <= 2020)
            {
                strValue = @"CHUANG";
                break;
            }
            if(nCode >= 2021 && nCode <= 2025)
            {
                strValue = @"CHUI";
                break;
            }
            if(nCode >= 2026 && nCode <= 2032)
            {
                strValue = @"CHUN";
                break;
            }
            if(nCode >= 2033 && nCode <= 2034)
            {
                strValue = @"CHUO";
                break;
            }
            if(nCode >= 2035 && nCode <= 2046)
            {
                strValue = @"CI";
                break;
            }
            if(nCode >= 2047 && nCode <= 2052)
            {
                strValue = @"CONG";
                break;
            }
            if(nCode >= 2054 && nCode <= 2057)
            {
                strValue = @"CU";
                break;
            }
            if(nCode >= 2058 && nCode <= 2060)
            {
                strValue = @"CUAN";
                break;
            }
            if(nCode >= 2061 && nCode <= 2068)
            {
                strValue = @"CUI";
                break;
            }
            if(nCode >= 2069 && nCode <= 2071)
            {
                strValue = @"CUN";
                break;
            }
            if(nCode >= 2072 && nCode <= 2077)
            {
                strValue = @"CUO";
                break;
            }
            if(nCode >= 2078 && nCode <= 2083)
            {
                strValue = @"DA";
                break;
            }
            if(nCode >= 2084 && nCode <= 2094)
            {
                strValue = @"DAI";
                break;
            }
            if(nCode >= 2102 && nCode <= 2116)
            {
                strValue = @"DAN";
                break;
            }
            if(nCode >= 2117 && nCode <= 2121)
            {
                strValue = @"DANG";
                break;
            }
            if(nCode >= 2122 && nCode <= 2133)
            {
                strValue = @"DAO";
                break;
            }
            if(nCode >= 2134 && nCode <= 2136)
            {
                strValue = @"DE";
                break;
            }
            if(nCode >= 2137 && nCode <= 2143)
            {
                strValue = @"DENG";
                break;
            }
            if(nCode >= 2144 && nCode <= 2162)
            {
                strValue = @"DI";
                break;
            }
            if(nCode >= 2163 && nCode <= 2178)
            {
                strValue = @"DIAN";
                break;
            }
            if(nCode >= 2179 && nCode <= 2187)
            {
                strValue = @"DIAO";
                break;
            }
            if(nCode >= 2188 && nCode <= 2194)
            {
                strValue = @"DIE";
                break;
            }
            if(nCode >= 2201 && nCode <= 2209)
            {
                strValue = @"DING";
                break;
            }
            if(nCode==2210)
            {
                strValue = @"DIU";
                break;
            }
            if(nCode >= 2211 && nCode <= 2220)
            {
                strValue = @"DONG";
                break;
            }
            if(nCode >= 2221 && nCode <= 2227)
            {
                strValue = @"DOU";
                break;
            }
            if(nCode >= 2228 && nCode <= 2242)
            {
                strValue = @"DU";
                break;
            }
            if(nCode >= 2243 && nCode <= 2248)
            {
                strValue = @"DUAN";
                break;
            }
            if(nCode >= 2249 && nCode <= 2252)
            {
                strValue = @"DUI";
                break;
            }
            if(nCode >= 2253 && nCode <= 2261)
            {
                strValue = @"DUN";
                break;
            }
            if(nCode >= 2262 && nCode <= 2273)
            {
                strValue = @"DUO";
                break;
            }
            if(nCode >= 2274 && nCode <= 2286)
            {
                strValue = @"E";
                break;
            }
            if(nCode==2287)
            {
                strValue = @"EN";
                break;
            }
            if(nCode >= 2288 && nCode <= 2231)
            {
                strValue = @"ER";
                break;
            }
            if(nCode >= 2302 && nCode <= 2309)
            {
                strValue = @"FA";
                break;
            }
            if(nCode >= 2310 && nCode <= 2326)
            {
                strValue = @"FAN";
                break;
            }
            if(nCode >= 2327 && nCode <= 2337)
            {
                strValue = @"FANG";
                break;
            }
            if(nCode >= 2338 && nCode <= 2349)
            {
                strValue = @"FEI";
                break;
            }
            if(nCode >= 2350 && nCode <= 2364)
            {
                strValue = @"FEN";
                break;
            }
            if(nCode >= 2365 && nCode <= 2379)
            {
                strValue = @"FENG";
                break;
            }
            if(nCode==2380)
            {
                strValue = @"FO";
                break;
            }
            if(nCode==2381)
            {
                strValue = @"FOU";
                break;
            }
            if(nCode >= 2382 && nCode <= 2432)
            {
                strValue = @"FU";
                break;
            }
            if(nCode >= 2435 && nCode <= 2440)
            {
                strValue = @"GAI";
                break;
            }
            if(nCode >= 2441 && nCode <= 2451)
            {
                strValue = @"GAN";
                break;
            }
            if(nCode >= 2452 && nCode <= 2460)
            {
                strValue = @"GANG";
                break;
            }
            if(nCode >= 2461 && nCode <= 2470)
            {
                strValue = @"GAO";
                break;
            }
            if(nCode >= 2471 && nCode <= 2487)
            {
                strValue = @"GE";
                break;
            }
            if(nCode==2488)
            {
                strValue = @"GEI";
                break;
            }
            if(nCode >= 2489 && nCode <= 2490)
            {
                strValue = @"GEN";
                break;
            }
            if(nCode >= 2491 && nCode <= 2503)
            {
                strValue = @"GENG";
                break;
            }
            if(nCode >= 2504 && nCode <= 2518)
            {
                strValue = @"GONG";
                break;
            }
            if(nCode >= 2519 && nCode <= 2527)
            {
                strValue = @"GOU";
                break;
            }
            if(nCode >= 2528 && nCode <= 2545)
            {
                strValue = @"GU";
                break;
            }
            if(nCode >= 2546 && nCode <= 2551)
            {
                strValue = @"GUA";
                break;
            }
            if(nCode >= 2552 && nCode <= 2554)
            {
                strValue = @"GUAI";
                break;
            }
            if(nCode >= 2555 && nCode <= 2565)
            {
                strValue = @"GUAN";
                break;
            }
            if(nCode >= 2566 && nCode <= 2568)
            {
                strValue = @"GUANG";
                break;
            }
            if(nCode >= 2569 && nCode <= 2584)
            {
                strValue = @"GUI";
                break;
            }
            if(nCode >= 2585 && nCode <= 2587)
            {
                strValue = @"GUN";
                break;
            }
            if(nCode >= 2588 && nCode <= 2593)
            {
                strValue = @"GUO";
                break;
            }
            if(nCode==2594)
            {
                strValue = @"HA";
                break;
            }
            if(nCode >= 2601 && nCode <= 2607)
            {
                strValue = @"HAI";
                break;
            }
            if(nCode >= 2608 && nCode <= 2626)
            {
                strValue = @"HAN";
                break;
            }
            if(nCode >= 2627 && nCode <= 2629)
            {
                strValue = @"HANG";
                break;
            }
            if(nCode >= 2630 && nCode <= 2638)
            {
                strValue = @"HAO";
                break;
            }
            if(nCode >= 2639 && nCode <= 2656)
            {
                strValue = @"HE";
                break;
            }
            if(nCode >= 2657 && nCode <= 2658)
            {
                strValue = @"HEI";
                break;
            }
            if(nCode >= 2659 && nCode <= 2662)
            {
                strValue = @"HEN";
                break;
            }
            if(nCode >= 2663 && nCode <= 2667)
            {
                strValue = @"HENG";
                break;
            }
            if(nCode >= 2668 && nCode <= 2676)
            {
                strValue = @"HONG";
                break;
            }
            if(nCode >= 2677 && nCode <= 2683)
            {
                strValue = @"HOU";
                break;
            }
            if(nCode >= 2684 && nCode <= 2707)
            {
                strValue = @"HU";
                break;
            }
            if(nCode >= 2708 && nCode <= 2716)
            {
                strValue = @"HUA";
                break;
            }
            if(nCode >= 2717 && nCode <= 2721)
            {
                strValue = @"HUAI";
                break;
            }
            if(nCode >= 2722 && nCode <= 2735)
            {
                strValue = @"HUAN";
                break;
            }
            if(nCode >= 2736 && nCode <= 2749)
            {
                strValue = @"HUANG";
                break;
            }
            if(nCode >= 2750 && nCode <= 2770)
            {
                strValue = @"HUI";
                break;
            }
            if(nCode >= 2771 && nCode <= 2776)
            {
                strValue = @"HUN";
                break;
            }
            if(nCode >= 2777 && nCode <= 2786)
            {
                strValue = @"HUO";
                break;
            }
            if(nCode >= 2787 && nCode <= 2845)
            {
                strValue = @"JI";
                break;
            }
            if(nCode >= 2846 && nCode <= 2862)
            {
                strValue = @"JIA";
                break;
            }
            if(nCode >= 2863 && nCode <= 2908)
            {
                strValue = @"JIAN";
                break;
            }
            if(nCode >= 2909 && nCode <= 2921)
            {
                strValue = @"JIANG";
                break;
            }
            if(nCode >= 2922 && nCode <= 2949)
            {
                strValue = @"JIAO";
                break;
            }
            if(nCode >= 2950 && nCode <= 2976)
            {
                strValue = @"JIE";
                break;
            }
            if(nCode >= 2977 && nCode <= 3002)
            {
                strValue = @"JIN";
                break;
            }
            if(nCode >= 3003 && nCode <= 3027)
            {
                strValue = @"JING";
                break;
            }
            if(nCode >= 3028 && nCode <= 3029)
            {
                strValue = @"JIONG";
                break;
            }
            if(nCode >= 3030 && nCode <= 3046)
            {
                strValue = @"JIU";
                break;
            }
            if(nCode >= 3047 && nCode <= 3071)
            {
                strValue = @"JU";
                break;
            }
            if(nCode >= 3072 && nCode <= 3078)
            {
                strValue = @"JUAN";
                break;
            }
            if(nCode >= 3079 && nCode <= 3088)
            {
                strValue = @"JUE";
                break;
            }
            if(nCode >= 3089 && nCode <= 3105)
            {
                strValue = @"JUN";
                break;
            }
            if(nCode >= 3106 && nCode <= 3109)
            {
                strValue = @"KA";
                break;
            }
            if(nCode >= 3110 && nCode <= 3114)
            {
                strValue = @"KAI";
                break;
            }
            if(nCode >= 3115 && nCode <= 3120)
            {
                strValue = @"KAN";
                break;
            }
            if(nCode >= 3121 && nCode <= 3127)
            {
                strValue = @"KANG";
                break;
            }
            if(nCode >= 3128 && nCode <= 3131)
            {
                strValue = @"KAO";
                break;
            }
            if(nCode >= 3132 && nCode <= 3146)
            {
                strValue = @"KE";
                break;
            }
            if(nCode >= 3147 && nCode <= 3150)
            {
                strValue = @"KEN";
                break;
            }
            if(nCode >= 3151 && nCode <= 3152)
            {
                strValue = @"KENG";
                break;
            }
            if(nCode >= 3153 && nCode <= 3156)
            {
                strValue = @"KONG";
                break;
            }
            if(nCode >= 3157 && nCode <= 3160)
            {
                strValue = @"KOU";
                break;
            }
            if(nCode >= 3161 && nCode <= 3167)
            {
                strValue = @"KU";
                break;
            }
            if(nCode >= 3168 && nCode <= 3172)
            {
                strValue = @"KUA";
                break;
            }
            if(nCode >= 3173 && nCode <= 3176)
            {
                strValue = @"KUAI";
                break;
            }
            if(nCode >= 3177 && nCode <= 3178)
            {
                strValue = @"KUAN";
                break;
            }
            if(nCode >= 3179 && nCode <= 3186)
            {
                strValue = @"KUANG";
                break;
            }
            if(nCode >= 3187 && nCode <= 3203)
            {
                strValue = @"KUI";
                break;
            }
            if(nCode >= 3204 && nCode <= 3207)
            {
                strValue = @"KUN";
                break;
            }
            if(nCode >= 3208 && nCode <= 3211)
            {
                strValue = @"KUO";
                break;
            }
            if(nCode >= 3212 && nCode <= 3218)
            {
                strValue = @"LA";
                break;
            }
            if(nCode >= 3219 && nCode <= 3221)
            {
                strValue = @"LAI";
                break;
            }
            if(nCode >= 3222 && nCode <= 3236)
            {
                strValue = @"LAN";
                break;
            }
            if(nCode >= 3237 && nCode <= 3243)
            {
                strValue = @"LANG";
                break;
            }
            if(nCode >= 3244 && nCode <= 3252)
            {
                strValue = @"LAO";
                break;
            }
            if(nCode >= 3253 && nCode <= 3254)
            {
                strValue = @"LE";
                break;
            }
            if(nCode >= 3255 && nCode <= 3265)
            {
                strValue = @"LEI";
                break;
            }
            if(nCode >= 3266 && nCode <= 3268)
            {
                strValue = @"LENG";
                break;
            }
            if(nCode >= 3269 && nCode <= 3308)
            {
                strValue = @"LI";
            }
            if(nCode==3309)
            {
                strValue = @"LIA";
                break;
            }
            if(nCode >= 3310 && nCode <= 3323)
            {
                strValue = @"LIAN";
                break;
            }
            if(nCode >= 3324 && nCode <= 3334)
            {
                strValue = @"LIANG";
                break;
            }
            if(nCode >= 3335 && nCode <= 3347)
            {
                strValue = @"LIAO";
                break;
            }
            if(nCode >= 3348 && nCode <= 3352)
            {
                strValue = @"LIE";
                break;
            }
            if(nCode >= 3353 && nCode <= 3363)
            {
                strValue = @"LIN";
                break;
            }
            if(nCode >= 3364 && nCode <= 3378)
            {
                strValue = @"LING";
                break;
            }
            if(nCode >= 3379 && nCode <= 3389)
            {
                strValue = @"LIU";
                break;
            }
            if(nCode >= 3390 && nCode <= 3404)
            {
                strValue = @"LONG";
                break;
            }
            if(nCode >= 3405 && nCode <= 3410)
            {
                strValue = @"LOU";
                break;
            }
            if(nCode >= 3411 && nCode <= 3444)
            {
                strValue = @"LU";
                break;
            }
            if(nCode >= 3445 && nCode <= 3450)
            {
                strValue = @"LUAN";
                break;
            }
            if(nCode >= 3451 && nCode <= 3452)
            {
                strValue = @"LUE";
                break;
            }
            if(nCode >= 3453 && nCode <= 3459)
            {
                strValue = @"LUN";
                break;
            }
            if(nCode >= 3460 && nCode <= 3471)
            {
                strValue = @"LUO";
                break;
            }
            if(nCode >= 3472 && nCode <= 3480)
            {
                strValue = @"MA";
                break;
            }
            if(nCode >= 3481 && nCode <= 3486)
            {
                strValue = @"MAI";
                break;
            }
            if(nCode >= 3487 && nCode <= 3501)
            {
                strValue = @"MAN";
                break;
            }
            if(nCode >= 3502 && nCode <= 3507)
            {
                strValue = @"MANG";
                break;
            }
            if(nCode >= 3508 && nCode <= 3519)
            {
                strValue = @"MAO";
                break;
            }
            if(nCode==3520)
            {
                strValue = @"ME";
                break;
            }
            if(nCode >= 3521 && nCode <= 3536)
            {
                strValue = @"MEI";
                break;
            }
            if(nCode >= 3537 && nCode <= 3539)
            {
                strValue = @"MEN";
                break;
            }
            if(nCode >= 3540 && nCode <= 3547)
            {
                strValue = @"MENG";
                break;
            }
            if(nCode >= 3548 && nCode <= 3561)
            {
                strValue = @"MI";
            }
            if(nCode >= 3562 && nCode <= 3570)
            {
                strValue = @"MIAN";
                break;
            }
            if(nCode >= 3571 && nCode <= 3578)
            {
                strValue = @"MIAO";
                break;
            }
            if(nCode >= 3579 && nCode <= 3580)
            {
                strValue = @"MIE";
                break;
            }
            if(nCode >= 3581 && nCode <= 3586)
            {
                strValue = @"MIN";
                break;
            }
            if(nCode >= 3587 && nCode <= 3592)
            {
                strValue = @"MING";
                break;
            }
            if(nCode==3593)
            {
                strValue = @"MIU";
                break;
            }
            if(nCode >= 3594 && nCode <= 3616)
            {
                strValue = @"MO";
                break;
            }
            if(nCode >= 3617 && nCode <= 3619)
            {
                strValue = @"MOU";
                break;
            }
            if(nCode >= 3620 && nCode <= 3634)
            {
                strValue = @"MU";
                break;
            }
            if(nCode >= 3635 && nCode <= 3641)
            {
                strValue = @"NA";
                break;
            }
            if(nCode >= 3642 && nCode <= 3646)
            {
                strValue = @"NAI";
                break;
            }
            if(nCode >= 3647 && nCode <= 3649)
            {
                strValue = @"NAN";
                break;
            }
            if(nCode==3650)
            {
                strValue = @"NANG";
                break;
            }
            if(nCode >= 3651 && nCode <= 3655)
            {
                strValue = @"NAO";
                break;
            }
            if(nCode==3656)
            {
                strValue = @"NE";
                break;
            }
            if(nCode >= 3657 && nCode <= 3658)
            {
                strValue = @"NEI";
                break;
            }
            if(nCode==3659)
            {
                strValue = @"NEN";
                break;
            }
            if(nCode==3660)
            {
                strValue = @"NENG";
                break;
            }
            if(nCode >= 3661 && nCode <= 3671)
            {
                strValue = @"NI";
                break;
            }
            if(nCode >= 3672 && nCode <= 3678)
            {
                strValue = @"NIAN";
                break;
            }
            if(nCode >= 3679 && nCode <= 3680)
            {
                strValue = @"NIANG";
                break;
            }
            if(nCode >= 3681 && nCode <= 3682)
            {
                strValue = @"NIAO";
                break;
            }
            if(nCode >= 3683 && nCode <= 3689)
            {
                strValue = @"NIE";
                break;
            }
            if(nCode==3690)
            {
                strValue = @"NIN";
                break;
            }
            if(nCode >= 3691 && nCode <= 3702)
            {
                strValue = @"NING";
                break;
            }
            if(nCode >= 3703 && nCode <= 3706)
            {
                strValue = @"NIU";
                break;
            }
            if(nCode >= 3707 && nCode <= 3710)
            {
                strValue = @"NONG";
                break;
            }
            if(nCode >= 3711 && nCode <= 3714)
            {
                strValue = @"NU";
                break;
            }
            if(nCode==3715)
            {
                strValue = @"NUAN";
                break;
            }
            if(nCode >= 3716 && nCode <= 3717)
            {
                strValue = @"NUE";
                break;
            }
            if(nCode >= 3718 && nCode <= 3721)
            {
                strValue = @"NUO";
                break;
            }
            if(nCode==3722)
            {
                strValue = @"O";
                break;
            }
            if(nCode >= 3723 && nCode <= 3729)
            {
                strValue = @"OU";
                break;
            }
            if(nCode >= 3730 && nCode <= 3735)
            {
                strValue = @"PA";
                break;
            }
            if(nCode >= 3736 && nCode <= 3741)
            {
                strValue = @"PAI";
                break;
            }
            if(nCode >= 3742 && nCode <= 3749)
            {
                strValue = @"PAN";
                break;
            }
            if(nCode >= 3750 && nCode <= 3754)
            {
                strValue = @"PANG";
                break;
            }
            if(nCode >= 3755 && nCode <= 3761)
            {
                strValue = @"PAO";
                break;
            }
            if(nCode >= 3762 && nCode <= 3770)
            {
                strValue = @"PEI";
                break;
            }
            if(nCode >= 3771 && nCode <= 3772)
            {
                strValue = @"PEN";
                break;
            }
            if(nCode >= 3773 && nCode <= 3786)
            {
                strValue = @"PENG";
                break;
            }
            if(nCode >= 3787 && nCode <= 3809)
            {
                strValue = @"PI";
                break;
            }
            if(nCode >= 3810 && nCode <= 3813)
            {
                strValue = @"PIAN";
                break;
            }
            if(nCode >= 3814 && nCode <= 3817)
            {
                strValue = @"PIAO";
                break;
            }
            if(nCode >= 3818 && nCode <= 3819)
            {
                strValue = @"PIE";
                break;
            }
            if(nCode >= 3820 && nCode <= 3824)
            {
                strValue = @"PIN";
                break;
            }
            if(nCode >= 3825 && nCode <= 3833)
            {
                strValue = @"PING";
                break;
            }
            if(nCode >= 3834 && nCode <= 3841)
            {
                strValue = @"PO";
                break;
            }
            if(nCode==3842)
            {
                strValue = @"POU";
                break;
            }
            if(nCode >= 3843 && nCode <= 3857)
            {
                strValue = @"PU";
                break;
            }
            if(nCode >= 3858 && nCode <= 3893)
            {
                strValue = @"QI";
                break;
            }
            if(nCode==3894||(nCode >= 3901 && nCode <= 3902))
            {
                strValue = @"QIA";
                break;
            }
            if(nCode >= 3903 && nCode <= 3924)
            {
                strValue = @"QIAN";
                break;
            }
            if(nCode >= 3925 && nCode <= 3932)
            {
                strValue = @"QIANG";
                break;
            }
            if(nCode >= 3933 && nCode <= 3947)
            {
                strValue = @"QIAO";
                break;
            }
            if(nCode >= 3948 && nCode <= 3952)
            {
                strValue = @"QIE";
                break;
            }
            if(nCode >= 3953 && nCode <= 3963)
            {
                strValue = @"QIN";
                break;
            }
            if(nCode >= 3964 && nCode <= 3976)
            {
                strValue = @"QING";
                break;
            }
            if(nCode >= 3977 && nCode <= 3978)
            {
                strValue = @"QIONG";
                break;
            }
            if(nCode >= 3979 && nCode <= 3986)
            {
                strValue = @"QIU";
                break;
            }
            if(nCode >= 3987 && nCode <= 4005)
            {
                strValue = @"QU";
                break;
            }
            if(nCode >= 4006 && nCode <= 4016)
            {
                strValue = @"QUAN";
                break;
            }
            if(nCode >= 4017 && nCode <= 4024)
            {
                strValue = @"QUE";
                break;
            }
            if(nCode >= 4025 && nCode <= 4026)
            {
                strValue = @"QUN";
                break;
            }
            if(nCode >= 4027 && nCode <= 4030)
            {
                strValue = @"RAN";
                break;
            }
            if(nCode >= 4031 && nCode <= 4035)
            {
                strValue = @"RANG";
            }
            if(nCode >= 4036 && nCode <= 4038)
            {
                strValue = @"RAO";
                break;
            }
            if(nCode >= 4039 && nCode <= 4040)
            {
                strValue = @"RE";
                break;
            }
            if(nCode >= 4041 && nCode <= 4050)
            {
                strValue = @"REN";
                break;
            }
            if(nCode >= 4051 && nCode <= 4052)
            {
                strValue = @"RENG";
                break;
            }
            if(nCode==4053)
            {
                strValue = @"RI";
                break;
            }
            if(nCode >= 4054 && nCode <= 4063)
            {
                strValue = @"RONG";
                break;
            }
            if(nCode >= 4064 && nCode <= 4066)
            {
                strValue = @"ROU";
                break;
            }
            if(nCode >= 4067 && nCode <= 4076)
            {
                strValue = @"RU";
                break;
            }
            if(nCode >= 4077 && nCode <= 4078)
            {
                strValue = @"RUAN";
                break;
            }
            if(nCode >= 4079 && nCode <= 4081)
            {
                strValue = @"RUI";
                break;
            }
            if(nCode >= 4082 && nCode <= 4083)
            {
                strValue = @"RUN";
                break;
            }
            if(nCode >= 4084 && nCode <= 4085)
            {
                strValue = @"RUO";
                break;
            }
            if(nCode >= 4086 && nCode <= 4088)
            {
                strValue = @"SA";
                break;
            }
            if(nCode >= 4089 && nCode <= 4092)
            {
                strValue = @"SAI";
                break;
            }
            if(nCode >= 4093 && nCode <= 4094)
            {
                strValue = @"SAN";
                break;
            }
            if(nCode >= 4101 && nCode <= 4102)
            {
                strValue = @"SAN";
                break;
            }
            if(nCode >= 4103 && nCode <= 4105)
            {
                strValue = @"SANG";
                break;
            }
            if(nCode >= 4106 && nCode <= 4109)
            {
                strValue = @"SAO";
                break;
            }
            if(nCode >= 4110 && nCode <= 4112)
            {
                strValue = @"SE";
                break;
            }
            if(nCode==4113)
            {
                strValue = @"SEN";
            }
            if(nCode==4114)
            {
                strValue = @"SENG";
                break;
            }
            if(nCode >= 4115 && nCode <= 4123)
            {
                strValue = @"SHA";
                break;
            }
            if(nCode >= 4124 && nCode <= 4125)
            {
                strValue = @"SHAI";
                break;
            }
            if(nCode >= 4126 && nCode <= 4141)
            {
                strValue = @"SHAN";
                break;
            }
            if(nCode >= 4142 && nCode <= 4149)
            {
                strValue = @"SHANG";
                break;
            }
            if(nCode >= 4150 && nCode <= 4160)
            {
                strValue = @"SHAO";
                break;
            }
            if(nCode >= 4161 && nCode <= 4172)
            {
                strValue = @"SHE";
                break;
            }
            if(nCode >= 4173 && nCode <= 4188)
            {
                strValue = @"SHEN";
                break;
            }
            if(nCode >= 4189 && nCode <= 4205)
            {
                strValue = @"SHENG";
                break;
            }
            if(nCode >= 4206 && nCode <= 4252)
            {
                strValue = @"SHI";
                break;
            }
            if(nCode >= 4253 && nCode <= 4262)
            {
                strValue = @"SHOU";
                break;
            }
            if(nCode >= 4263 && nCode <= 4301)
            {
                strValue = @"SHU";
                break;
            }
            if(nCode >= 4302 && nCode <= 4303)
            {
                strValue = @"SHUA";
                break;
            }
            if(nCode >= 4304 && nCode <= 4307)
            {
                strValue = @"SHUAI";
                break;
            }
            if(nCode >= 4308 && nCode <= 4309)
            {
                strValue = @"SHUAN";
                break;
            }
            if(nCode >= 4310 && nCode <= 4312)
            {
                strValue = @"SHUANG";
                break;
            }
            if(nCode >= 4313 && nCode <= 4316)
            {
                strValue = @"SHUI";
                break;
            }
            if(nCode >= 4317 && nCode <= 4320)
            {
                strValue = @"SHUN";
                break;
            }
            if(nCode >= 4321 && nCode <= 4324)
            {
                strValue = @"SHUO";
                break;
            }
            if(nCode >= 4325 && nCode <= 4340)
            {
                strValue = @"SI";
                break;
            }
            if(nCode >= 4341 && nCode <= 4348)
            {
                strValue = @"SONG";
                break;
            }
            if(nCode >= 4349 && nCode <= 4352)
            {
                strValue = @"SOU";
                break;
            }
            if(nCode >= 4353 && nCode <= 4364)
            {
                strValue = @"SU";
                break;
            }
            if(nCode >= 4365 && nCode <= 4367)
            {
                strValue = @"SUAN";
                break;
            }
            if(nCode >= 4368 && nCode <= 4378)
            {
                strValue = @"SUI";
                break;
            }
            if(nCode >= 4379 && nCode <= 4381)
            {
                strValue = @"SUN";
                break;
            }
            if(nCode >= 4382 && nCode <= 4389)
            {
                strValue = @"SUO";
                break;
            }
            if(nCode >= 4390 && nCode <= 4404)
            {
                strValue = @"TA";
                break;
            }
            if(nCode >= 4405 && nCode <= 4413)
            {
                strValue = @"TAI";
                break;
            }
            if(nCode >= 4414 && nCode <= 4431)
            {
                strValue = @"TAN";
                break;
            }
            if(nCode >= 4432 && nCode <= 4444)
            {
                strValue = @"TANG";
                break;
            }
            if(nCode >= 4445 && nCode <= 4455)
            {
                strValue = @"TAO";
                break;
            }
            if(nCode==4456)
            {
                strValue = @"TE";
                break;
            }
            if(nCode >= 4457 && nCode <= 4460)
            {
                strValue = @"TENG";
                break;
            }
            if(nCode >= 4461 && nCode <= 4475)
            {
                strValue = @"TI";
                break;
            }
            if(nCode >= 4476 && nCode <= 4483)
            {
                strValue = @"TIAN";
                break;
            }
            if(nCode >= 4484 && nCode <= 4488)
            {
                strValue = @"TIAO";
                break;
            }
            if(nCode >= 4489 && nCode <= 4491)
            {
                strValue = @"TIE";
                break;
            }
            if(nCode >= 4492 && nCode <= 4507)
            {
                strValue = @"TING";
                break;
            }
            if(nCode >= 4508 && nCode <= 4520)
            {
                strValue = @"TONG";
                break;
            }
            if(nCode >= 4521 && nCode <= 4524)
            {
                strValue = @"TOU";
                break;
            }
            if(nCode >= 4525 && nCode <= 4535)
            {
                strValue = @"TU";
                break;
            }
            if(nCode >= 4536 && nCode <= 4537)
            {
                strValue = @"TUAN";
                break;
            }
            if(nCode >= 4538 && nCode <= 4543)
            {
                strValue = @"TUI";
                break;
            }
            if(nCode >= 4544 && nCode <= 4546)
            {
                strValue = @"TUN";
                break;
            }
            if(nCode >= 4547 && nCode <= 4557)
            {
                strValue = @"TUO";
                break;
            }
            if(nCode >= 4558 && nCode <= 4564)
            {
                strValue = @"WA";
                break;
            }
            if(nCode >= 4565 && nCode <= 4566)
            {
                strValue = @"WAI";
                break;
            }
            if(nCode >= 4567 && nCode <= 4583)
            {
                strValue = @"WAN";
                break;
            }
            if(nCode >= 4584 && nCode <= 4593)
            {
                strValue = @"WANG";
                break;
            }
            if(nCode >= 4594 && nCode <= 4632)
            {
                strValue = @"WEI";
                break;
            }
            if(nCode >= 4633 && nCode <= 4642)
            {
                strValue = @"WEN";
                break;
            }
            if(nCode >= 4643 && nCode <= 4645)
            {
                strValue = @"WENG";
                break;
            }
            if(nCode >= 4646 && nCode <= 4654)
            {
                strValue = @"WO";
                break;
            }
            if(nCode >= 4655 && nCode <= 4683)
            {
                strValue = @"WU";
                break;
            }
            if(nCode >= 4684 && nCode <= 4724)
            {
                strValue = @"XI";
                break;
            }
            if(nCode >= 4725 && nCode <= 4737)
            {
                strValue = @"XIA";
                break;
            }
            if(nCode >= 4738 && nCode <= 4763)
            {
                strValue = @"XIAN";
                break;
            }
            if(nCode >= 4764 && nCode <= 4783)
            {
                strValue = @"XIANG";
                break;
            }
            if(nCode >= 4784 && nCode <= 4807)
            {
                strValue = @"XIAO";
                break;
            }
            if(nCode >= 4809 && nCode <= 4828)
            {
                strValue = @"XIE";
                break;
            }
            if(nCode >= 4829 && nCode <= 4838)
            {
                strValue = @"XIN";
                break;
            }
            if(nCode >= 4839 && nCode <= 4853)
            {
                strValue = @"XING";
                break;
            }
            if(nCode >= 4854 && nCode <= 4860)
            {
                strValue = @"XIONG";
                break;
            }
            if(nCode >= 4861 && nCode <= 4869)
            {
                strValue = @"XIU";
                break;
            }
            if(nCode >= 4870 && nCode <= 4888)
            {
                strValue = @"XU";
                break;
            }
            if(nCode >= 4889 && nCode <= 4904)
            {
                strValue = @"XUAN";
                break;
            }
            if(nCode >= 4905 && nCode <= 4910)
            {
                strValue = @"XUE";
                break;
            }
            if(nCode >= 4911 && nCode <= 4924)
            {
                strValue = @"XUN";
                break;
            }
            if(nCode >= 4925 && nCode <= 4940)
            {
                strValue = @"YA";
                break;
            }
            if(nCode >= 4941 && nCode <= 4973)
            {
                strValue = @"YAN";
                break;
            }
            if(nCode >= 4974 && nCode <= 4990)
            {
                strValue = @"YANG";
                break;
            }
            if(nCode >= 4991 && nCode <= 5011)
            {
                strValue = @"YAO";
                break;
            }
            if(nCode >= 5012 && nCode <= 5026)
            {
                strValue = @"YE";
                break;
            }
            if(nCode >= 5027 && nCode <= 5079)
            {
                strValue = @"YI";
                break;
            }
            if(nCode >= 5080 && nCode <= 5101)
            {
                strValue = @"YIN";
                break;
            }
            if(nCode >= 5102 && nCode <= 5119)
            {
                strValue = @"YING";
                break;
            }
            if(nCode==5120)
            {
                strValue = @"YO";
                break;
            }
            if(nCode >= 5121 && nCode <= 5135)
            {
                strValue = @"YONG";
                break;
            }
            if(nCode >= 5136 && nCode <= 5155)
            {
                strValue = @"YOU";
                break;
            }
            if(nCode >= 5156 && nCode <= 5206)
            {
                strValue = @"YU";
                break;
            }
            if(nCode >= 5207 && nCode <= 5226)
            {
                strValue = @"YUAN";
                break;
            }
            if(nCode >= 5227 && nCode <= 5236)
            {
                strValue = @"YUE";
                break;
            }
            if(nCode >= 5237 && nCode <= 5248)
            {
                strValue = @"YUN";
                break;
            }
            if(nCode >= 5249 && nCode <= 5251)
            {
                strValue = @"ZA";
                break;
            }
            if(nCode >= 5252 && nCode <= 5258)
            {
                strValue = @"ZAI";
                break;
            }
            if(nCode >= 5259 && nCode <= 5262)
            {
                strValue = @"ZAN";
                break;
            }
            if(nCode >= 5263 && nCode <= 5265)
            {
                strValue = @"ZANG";
                break;
            }
            if(nCode >= 5266 && nCode <= 5279)
            {
                strValue = @"ZAO";
                break;
            }
            if(nCode >= 5280 && nCode <= 5283)
            {
                strValue = @"ZE";
                break;
            }
            if(nCode==5284)
            {
                strValue = @"ZEI";
                break;
            }
            if(nCode==5285)
            {
                strValue = @"ZEN";
                break;
            }
            if(nCode >= 5286 && nCode <= 5289)
            {
                strValue = @"ZENG";
                break;
            }
            if(nCode >= 5290 && nCode <= 5309)
            {
                strValue = @"ZHA";
                break;
            }
            if(nCode >= 5310 && nCode <= 5315)
            {
                strValue = @"ZHAI";
                break;
            }
            if(nCode >= 5316 && nCode <= 5332)
            {
                strValue = @"ZHAN";
                break;
            }
            if(nCode >= 5333 && nCode <= 5347)
            {
                strValue = @"ZHANG";
                break;
            }
            if(nCode >= 5348 && nCode <= 5357)
            {
                strValue = @"ZHAO";
                break;
            }
            if(nCode >= 5358 && nCode <= 5367)
            {
                strValue = @"ZHE";
                break;
            }
            if(nCode >= 5368 && nCode <= 5383)
            {
                strValue = @"ZHEN";
                break;
            }
            if(nCode >= 5384 && nCode <= 5404)
            {
                strValue = @"ZHENG";
                break;
            }
            if(nCode >= 5405 && nCode <= 5447)
            {
                strValue = @"ZHI";
                break;
            }
            if(nCode >= 5448 && nCode <= 5458)
            {
                strValue = @"ZHONG";
                break;
            }
            if(nCode >= 5459 && nCode <= 5472)
            {
                strValue = @"ZHOU";
                break;
            }
            if(nCode >= 5473 && nCode <= 5504)
            {
                strValue = @"ZHU";
                break;
            }
            if(nCode >= 5505 && nCode <= 5506)
            {
                strValue = @"ZHUA";
                break;
            }
            if(nCode==5507)
            {
                strValue = @"ZHUAI";
                break;
            }
            if(nCode >= 5508 && nCode <= 5513)
            {
                strValue = @"ZHUAN";
                break;
            }
            if(nCode >= 5514 && nCode <= 5520)
            {
                strValue = @"ZHUANG";
                break;
            }
            if(nCode >= 5521 && nCode <= 5526)
            {
                strValue = @"ZHUI";
                break;
            }
            if(nCode >= 5527 && nCode <= 5528)
            {
                strValue = @"ZHUN";
                break;
            }
            if(nCode >= 5529 && nCode <= 5539)
            {
                strValue = @"ZHUO";
                break;
            }
            if(nCode >= 5540 && nCode <= 5554)
            {
                strValue = @"ZI";
                break;
            }
            if(nCode >= 5555 && nCode <= 5561)
            {
                strValue = @"ZONG";
                break;
            }
            if(nCode >= 5562 && nCode <= 5565)
            {
                strValue = @"ZOU";
                break;
            }
            if(nCode >= 5566 && nCode <= 5573)
            {
                strValue = @"ZU";
                break;
            }
            if(nCode >= 5574 && nCode <= 5575)
            {
                strValue = @"ZUAN";
                break;
            }
            if(nCode >= 5576 && nCode <= 5579)
            {
                strValue = @"ZUI";
                break;
            }
            if(nCode >= 5580 && nCode <= 5581)
            {
                strValue = @"ZUN";
                break;
            }
            if(nCode >= 5582 && nCode <= 5589)
            {
                strValue = @"ZUO";
                break;
            }
    }
    return strValue;
}

#define HANZI_START 19968
#define HANZI_COUNT 20902

static char firstLetterArray[HANZI_COUNT] = 
"ydkqsxnwzssxjbymgcczqpssqbycdscdqldylybssjgyqzjjfgcclzznwdwzjljpfyynnjjtmynzwzhflzppqhgccyynmjqyxxgd"
"nnsnsjnjnsnnmlnrxyfsngnnnnqzggllyjlnyzssecykyyhqwjssggyxyqyjtwktjhychmnxjtlhjyqbyxdldwrrjnwysrldzjpc"
"bzjjbrcfslnczstzfxxchtrqggddlyccssymmrjcyqzpwwjjyfcrwfdfzqpyddwyxkyjawjffxjbcftzyhhycyswccyxsclcxxwz"
"cxnbgnnxbxlzsqsbsjpysazdhmdzbqbscwdzzyytzhbtsyyfzgntnxjywqnknphhlxgybfmjnbjhhgqtjcysxstkzglyckglysmz"
"xyalmeldccxgzyrjxjzlnjzcqkcnnjwhjczccqljststbnhbtyxceqxkkwjyflzqlyhjxspsfxlmpbysxxxytccnylllsjxfhjxp"
"jbtffyabyxbcczbzyclwlczggbtssmdtjcxpthyqtgjjxcjfzkjzjqnlzwlslhdzbwjncjzyzsqnycqynzcjjwybrtwpyftwexcs"
"kdzctbyhyzqyyjxzcfbzzmjyxxsdczottbzljwfckscsxfyrlrygmbdthjxsqjccsbxyytswfbjdztnbcnzlcyzzpsacyzzsqqcs"
"hzqydxlbpjllmqxqydzxsqjtzpxlcglqdcwzfhctdjjsfxjejjtlbgxsxjmyjjqpfzasyjnsydjxkjcdjsznbartcclnjqmwnqnc"
"lllkbdbzzsyhqcltwlccrshllzntylnewyzyxczxxgdkdmtcedejtsyyssdqdfmxdbjlkrwnqlybglxnlgtgxbqjdznyjsjyjcjm"
"rnymgrcjczgjmzmgxmmryxkjnymsgmzzymknfxmbdtgfbhcjhkylpfmdxlxjjsmsqgzsjlqdldgjycalcmzcsdjllnxdjffffjcn" //
"fnnffpfkhkgdpqxktacjdhhzdddrrcfqyjkqccwjdxhwjlyllzgcfcqjsmlzpbjjblsbcjggdckkdezsqcckjgcgkdjtjllzycxk"
"lqccgjcltfpcqczgwbjdqyzjjbyjhsjddwgfsjgzkcjctllfspkjgqjhzzljplgjgjjthjjyjzccmlzlyqbgjwmljkxzdznjqsyz"
"mljlljkywxmkjlhskjhbmclyymkxjqlbmllkmdxxkwyxwslmlpsjqqjqxyqfjtjdxmxxllcrqbsyjbgwynnggbcnxpjtgpapfgdj"
"qbhbncfjyzjkjkhxqfgqckfhygkhdkllsdjqxpqyaybnqsxqnszswhbsxwhxwbzzxdmndjbsbkbbzklylxgwxjjwaqzmywsjqlsj"
"xxjqwjeqxnchetlzalyyyszzpnkyzcptlshtzcfycyxyljsdcjqagyslcllyyysslqqqnldxzsccscadycjysfsgbfrsszqsbxjp"
"sjysdrckgjlgtkzjzbdktcsyqpyhstcldjnhmymcgxyzhjdctmhltxzhylamoxyjcltyfbqqjpfbdfehthsqhzywwcncxcdwhowg"
"yjlegmdqcwgfjhcsntmydolbygnqwesqpwnmlrydzszzlyqpzgcwxhnxpyxshmdqjgztdppbfbhzhhjyfdzwkgkzbldnzsxhqeeg"
"zxylzmmzyjzgszxkhkhtxexxgylyapsthxdwhzydpxagkydxbhnhnkdnjnmyhylpmgecslnzhkxxlbzzlbmlsfbhhgsgyyggbhsc"
"yajtxglxtzmcwzydqdqmngdnllszhngjzwfyhqswscelqajynytlsxthaznkzzsdhlaxxtwwcjhqqtddwzbcchyqzflxpslzqgpz"
"sznglydqtbdlxntctajdkywnsyzljhhdzckryyzywmhychhhxhjkzwsxhdnxlyscqydpslyzwmypnkxyjlkchtyhaxqsyshxasmc"
"hkdscrsgjpwqsgzjlwwschsjhsqnhnsngndantbaalczmsstdqjcjktscjnxplggxhhgoxzcxpdmmhldgtybynjmxhmrzplxjzck"
"zxshflqxxcdhxwzpckczcdytcjyxqhlxdhypjqxnlsyydzozjnhhqezysjyayxkypdgxddnsppyzndhthrhxydpcjjhtcnnctlhb"
"ynyhmhzllnnxmylllmdcppxhmxdkycyrdltxjchhznxclcclylnzsxnjzzlnnnnwhyqsnjhxynttdkyjpychhyegkcwtwlgjrlgg"
"tgtygyhpyhylqyqgcwyqkpyyettttlhyylltyttsylnyzwgywgpydqqzzdqnnkcqnmjjzzbxtqfjkdffbtkhzkbxdjjkdjjtlbwf"
"zpptkqtztgpdwntpjyfalqmkgxbcclzfhzcllllanpnxtjklcclgyhdzfgyddgcyyfgydxkssendhykdndknnaxxhbpbyyhxccga"
"pfqyjjdmlxcsjzllpcnbsxgjyndybwjspcwjlzkzddtacsbkzdyzypjzqsjnkktknjdjgyepgtlnyqnacdntcyhblgdzhbbydmjr"
"egkzyheyybjmcdtafzjzhgcjnlghldwxjjkytcyksssmtwcttqzlpbszdtwcxgzagyktywxlnlcpbclloqmmzsslcmbjcsdzkydc"
"zjgqjdsmcytzqqlnzqzxssbpkdfqmddzzsddtdmfhtdycnaqjqkypbdjyyxtljhdrqxlmhkydhrnlklytwhllrllrcxylbnsrnzz"
"symqzzhhkyhxksmzsyzgcxfbnbsqlfzxxnnxkxwymsddyqnggqmmyhcdzttfgyyhgsbttybykjdnkyjbelhdypjqnfxfdnkzhqks"
"byjtzbxhfdsbdaswpawajldyjsfhblcnndnqjtjnchxfjsrfwhzfmdrfjyxwzpdjkzyjympcyznynxfbytfyfwygdbnzzzdnytxz"
"emmqbsqehxfznbmflzzsrsyqjgsxwzjsprytjsjgskjjgljjynzjjxhgjkymlpyyycxycgqzswhwlyrjlpxslcxmnsmwklcdnkny"
"npsjszhdzeptxmwywxyysywlxjqcqxzdclaeelmcpjpclwbxsqhfwrtfnjtnqjhjqdxhwlbyccfjlylkyynldxnhycstyywncjtx"
"ywtrmdrqnwqcmfjdxzmhmayxnwmyzqtxtlmrspwwjhanbxtgzypxyyrrclmpamgkqjszycymyjsnxtplnbappypylxmyzkynldgy"
"jzcchnlmzhhanqnbgwqtzmxxmllhgdzxnhxhrxycjmffxywcfsbssqlhnndycannmtcjcypnxnytycnnymnmsxndlylysljnlxys"
"sqmllyzlzjjjkyzzcsfbzxxmstbjgnxnchlsnmcjscyznfzlxbrnnnylmnrtgzqysatswryhyjzmgdhzgzdwybsscskxsyhytsxg"
"cqgxzzbhyxjscrhmkkbsczjyjymkqhzjfnbhmqhysnjnzybknqmcjgqhwlsnzswxkhljhyybqcbfcdsxdldspfzfskjjzwzxsddx"
"jseeegjscssygclxxnwwyllymwwwgydkzjggggggsycknjwnjpcxbjjtqtjwdsspjxcxnzxnmelptfsxtllxcljxjjljsxctnswx"
"lennlyqrwhsycsqnybyaywjejqfwqcqqcjqgxaldbzzyjgkgxbltqyfxjltpydkyqhpmatlcndnkxmtxynhklefxdllegqtymsaw"
"hzmljtkynxlyjzljeeyybqqffnlyxhdsctgjhxywlkllxqkcctnhjlqmkkzgcyygllljdcgydhzwypysjbzjdzgyzzhywyfqdtyz"
"szyezklymgjjhtsmqwyzljyywzcsrkqyqltdxwcdrjalwsqzwbdcqyncjnnszjlncdcdtlzzzacqqzzddxyblxcbqjylzllljddz"
"jgyqyjzyxnyyyexjxksdaznyrdlzyyynjlslldyxjcykywnqcclddnyyynycgczhjxcclgzqjgnwnncqqjysbzzxyjxjnxjfzbsb"
"dsfnsfpzxhdwztdmpptflzzbzdmyypqjrsdzsqzsqxbdgcpzswdwcsqzgmdhzxmwwfybpngphdmjthzsmmbgzmbzjcfzhfcbbnmq"
"dfmbcmcjxlgpnjbbxgyhyyjgptzgzmqbqdcgybjxlwnkydpdymgcftpfxyztzxdzxtgkptybbclbjaskytssqyymscxfjhhlslls"
"jpqjjqaklyldlycctsxmcwfgngbqxllllnyxtyltyxytdpjhnhgnkbyqnfjyyzbyyessessgdyhfhwtcqbsdzjtfdmxhcnjzymqw"
"srxjdzjqbdqbbsdjgnfbknbxdkqhmkwjjjgdllthzhhyyyyhhsxztyyyccbdbpypzyccztjpzywcbdlfwzcwjdxxhyhlhwczxjtc"
"nlcdpxnqczczlyxjjcjbhfxwpywxzpcdzzbdccjwjhmlxbqxxbylrddgjrrctttgqdczwmxfytmmzcwjwxyywzzkybzcccttqnhx"
"nwxxkhkfhtswoccjybcmpzzykbnnzpbthhjdlszddytyfjpxyngfxbyqxzbhxcpxxtnzdnnycnxsxlhkmzxlthdhkghxxsshqyhh"
"cjyxglhzxcxnhekdtgqxqypkdhentykcnymyyjmkqyyyjxzlthhqtbyqhxbmyhsqckwwyllhcyylnneqxqwmcfbdccmljggxdqkt"
"lxkknqcdgcjwyjjlyhhqyttnwchhxcxwherzjydjccdbqcdgdnyxzdhcqrxcbhztqcbxwgqwyybxhmbymykdyecmqkyaqyngyzsl"
"fnkkqgyssqyshngjctxkzycssbkyxhyylstycxqthysmnscpmmgcccccmnztasmgqzjhklosjylswtmqzyqkdzljqqyplzycztcq"
"qpbbcjzclpkhqcyyxxdtdddsjcxffllchqxmjlwcjcxtspycxndtjshjwhdqqqckxyamylsjhmlalygxcyydmamdqmlmcznnyybz"
"xkyflmcncmlhxrcjjhsylnmtjggzgywjxsrxcwjgjqhqzdqjdcjjskjkgdzcgjjyjylxzxxcdqhhheslmhlfsbdjsyyshfyssczq"
"lpbdrfnztzdkykhsccgkwtqzckmsynbcrxqbjyfaxpzzedzcjykbcjwhyjbqzzywnyszptdkzpfpbaztklqnhbbzptpptyzzybhn"
"ydcpzmmcycqmcjfzzdcmnlfpbplngqjtbttajzpzbbdnjkljqylnbzqhksjznggqstzkcxchpzsnbcgzkddzqanzgjkdrtlzldwj"
"njzlywtxndjzjhxnatncbgtzcsskmljpjytsnwxcfjwjjtkhtzplbhsnjssyjbhbjyzlstlsbjhdnwqpslmmfbjdwajyzccjtbnn"
"nzwxxcdslqgdsdpdzgjtqqpsqlyyjzlgyhsdlctcbjtktyczjtqkbsjlgnnzdncsgpynjzjjyyknhrpwszxmtncszzyshbyhyzax"
"ywkcjtllckjjtjhgcssxyqyczbynnlwqcglzgjgqyqcczssbcrbcskydznxjsqgxssjmecnstjtpbdlthzwxqwqczexnqczgwesg"
"ssbybstscslccgbfsdqnzlccglllzghzcthcnmjgyzazcmsksstzmmzckbjygqljyjppldxrkzyxccsnhshhdznlzhzjjcddcbcj"
"xlbfqbczztpqdnnxljcthqzjgylklszzpcjdscqjhjqkdxgpbajynnsmjtzdxlcjyryynhjbngzjkmjxltbsllrzpylssznxjhll"
"hyllqqzqlsymrcncxsljmlzltzldwdjjllnzggqxppskyggggbfzbdkmwggcxmcgdxjmcjsdycabxjdlnbcddygskydqdxdjjyxh"
"saqazdzfslqxxjnqzylblxxwxqqzbjzlfbblylwdsljhxjyzjwtdjcyfqzqzzdzsxzzqlzcdzfxhwspynpqzmlpplffxjjnzzyls"
"jnyqzfpfzgsywjjjhrdjzzxtxxglghtdxcskyswmmtcwybazbjkshfhgcxmhfqhyxxyzftsjyzbxyxpzlchmzmbxhzzssyfdmncw"
"dabazlxktcshhxkxjjzjsthygxsxyyhhhjwxkzxssbzzwhhhcwtzzzpjxsyxqqjgzyzawllcwxznxgyxyhfmkhydwsqmnjnaycys"
"pmjkgwcqhylajgmzxhmmcnzhbhxclxdjpltxyjkdyylttxfqzhyxxsjbjnayrsmxyplckdnyhlxrlnllstycyyqygzhhsccsmcct"
"zcxhyqfpyyrpbflfqnntszlljmhwtcjqyzwtlnmlmdwmbzzsnzrbpdddlqjjbxtcsnzqqygwcsxfwzlxccrszdzmcyggdyqsgtnn"
"nlsmymmsyhfbjdgyxccpshxczcsbsjyygjmpbwaffyfnxhydxzylremzgzzyndsznlljcsqfnxxkptxzgxjjgbmyyssnbtylbnlh"
"bfzdcyfbmgqrrmzszxysjtznnydzzcdgnjafjbdknzblczszpsgcycjszlmnrznbzzldlnllysxsqzqlcxzlsgkbrxbrbzcycxzj"
"zeeyfgklzlnyhgzcgzlfjhgtgwkraajyzkzqtsshjjxdzyznynnzyrzdqqhgjzxsszbtkjbbfrtjxllfqwjgclqtymblpzdxtzag"
"bdhzzrbgjhwnjtjxlkscfsmwlldcysjtxkzscfwjlbnntzlljzllqblcqmqqcgcdfpbphzczjlpyyghdtgwdxfczqyyyqysrclqz"
"fklzzzgffcqnwglhjycjjczlqzzyjbjzzbpdcsnnjgxdqnknlznnnnpsntsdyfwwdjzjysxyyczcyhzwbbyhxrylybhkjksfxtjj"
"mmchhlltnyymsxxyzpdjjycsycwmdjjkqyrhllngpngtlyycljnnnxjyzfnmlrgjjtyzbsyzmsjyjhgfzqmsyxrszcytlrtqzsst"
"kxgqkgsptgxdnjsgcqcqhmxggztqydjjznlbznxqlhyqgggthqscbyhjhhkyygkggcmjdzllcclxqsftgjslllmlcskctbljszsz"
"mmnytpzsxqhjcnnqnyexzqzcpshkzzyzxxdfgmwqrllqxrfztlystctmjcsjjthjnxtnrztzfqrhcgllgcnnnnjdnlnnytsjtlny"
"xsszxcgjzyqpylfhdjsbbdczgjjjqzjqdybssllcmyttmqnbhjqmnygjyeqyqmzgcjkpdcnmyzgqllslnclmholzgdylfzslncnz"
"lylzcjeshnyllnxnjxlyjyyyxnbcljsswcqqnnyllzldjnllzllbnylnqchxyyqoxccqkyjxxxyklksxeyqhcqkkkkcsnyxxyqxy"
"gwtjohthxpxxhsnlcykychzzcbwqbbwjqcscszsslcylgddsjzmmymcytsdsxxscjpqqsqylyfzychdjynywcbtjsydchcyddjlb"
"djjsodzyqyskkyxdhhgqjyohdyxwgmmmazdybbbppbcmnnpnjzsmtxerxjmhqdntpjdcbsnmssythjtslmltrcplzszmlqdsdmjm"
"qpnqdxcfrnnfsdqqyxhyaykqyddlqyyysszbydslntfgtzqbzmchdhczcwfdxtmqqsphqwwxsrgjcwnntzcqmgwqjrjhtqjbbgwz"
"fxjhnqfxxqywyyhyccdydhhqmrmtmwctbszppzzglmzfollcfwhmmsjzttdhlmyffytzzgzyskjjxqyjzqbhmbzclyghgfmshpcf"
"zsnclpbqsnjyzslxxfpmtyjygbxlldlxpzjyzjyhhzcywhjylsjexfszzywxkzjlnadymlymqjpwxxhxsktqjezrpxxzghmhwqpw"
"qlyjjqjjzszcnhjlchhnxjlqwzjhbmzyxbdhhypylhlhlgfwlcfyytlhjjcwmscpxstkpnhjxsntyxxtestjctlsslstdlllwwyh"
"dnrjzsfgxssyczykwhtdhwjglhtzdqdjzxxqgghltzphcsqfclnjtclzpfstpdynylgmjllycqhynspchylhqyqtmzymbywrfqyk"
"jsyslzdnjmpxyyssrhzjnyqtqdfzbwwdwwrxcwggyhxmkmyyyhmxmzhnksepmlqqmtcwctmxmxjpjjhfxyyzsjzhtybmstsyjznq"
"jnytlhynbyqclcycnzwsmylknjxlggnnpjgtysylymzskttwlgsmzsylmpwlcwxwqcssyzsyxyrhssntsrwpccpwcmhdhhxzdzyf"
"jhgzttsbjhgyglzysmyclllxbtyxhbbzjkssdmalhhycfygmqypjyjqxjllljgclzgqlycjcctotyxmtmshllwlqfxymzmklpszz"
"cxhkjyclctyjcyhxsgyxnnxlzwpyjpxhjwpjpwxqqxlxsdhmrslzzydwdtcxknstzshbsccstplwsscjchjlcgchssphylhfhhxj"
"sxallnylmzdhzxylsxlmzykcldyahlcmddyspjtqjzlngjfsjshctsdszlblmssmnyymjqbjhrzwtyydchjljapzwbgqxbkfnbjd"
"llllyylsjydwhxpsbcmljpscgbhxlqhyrljxyswxhhzlldfhlnnymjljyflyjycdrjlfsyzfsllcqyqfgqyhnszlylmdtdjcnhbz"
"llnwlqxygyyhbmgdhxxnhlzzjzxczzzcyqzfngwpylcpkpykpmclgkdgxzgxwqbdxzzkzfbddlzxjtpjpttbythzzdwslcpnhslt"
"jxxqlhyxxxywzyswttzkhlxzxzpyhgzhknfsyhntjrnxfjcpjztwhplshfcrhnslxxjxxyhzqdxqwnnhyhmjdbflkhcxcwhjfyjc"
"fpqcxqxzyyyjygrpynscsnnnnchkzdyhflxxhjjbyzwttxnncyjjymswyxqrmhxzwfqsylznggbhyxnnbwttcsybhxxwxyhhxyxn"
"knyxmlywrnnqlxbbcljsylfsytjzyhyzawlhorjmnsczjxxxyxchcyqryxqzddsjfslyltsffyxlmtyjmnnyyyxltzcsxqclhzxl"
"wyxzhnnlrxkxjcdyhlbrlmbrdlaxksnlljlyxxlynrylcjtgncmtlzllcyzlpzpzyawnjjfybdyyzsepckzzqdqpbpsjpdyttbdb"
"bbyndycncpjmtmlrmfmmrwyfbsjgygsmdqqqztxmkqwgxllpjgzbqrdjjjfpkjkcxbljmswldtsjxldlppbxcwkcqqbfqbccajzg"
"mykbhyhhzykndqzybpjnspxthlfpnsygyjdbgxnhhjhzjhstrstldxskzysybmxjlxyslbzyslzxjhfybqnbylljqkygzmcyzzym"
"ccslnlhzhwfwyxzmwyxtynxjhbyymcysbmhysmydyshnyzchmjjmzcaahcbjbbhblytylsxsnxgjdhkxxtxxnbhnmlngsltxmrhn"
"lxqqxmzllyswqgdlbjhdcgjyqyymhwfmjybbbyjyjwjmdpwhxqldyapdfxxbcgjspckrssyzjmslbzzjfljjjlgxzgyxyxlszqkx"
"bexyxhgcxbpndyhwectwwcjmbtxchxyqqllxflyxlljlssnwdbzcmyjclwswdczpchqekcqbwlcgydblqppqzqfnqdjhymmcxtxd"
"rmzwrhxcjzylqxdyynhyyhrslnrsywwjjymtltllgtqcjzyabtckzcjyccqlysqxalmzynywlwdnzxqdllqshgpjfjljnjabcqzd"
"jgthhsstnyjfbswzlxjxrhgldlzrlzqzgsllllzlymxxgdzhgbdphzpbrlwnjqbpfdwonnnhlypcnjccndmbcpbzzncyqxldomzb"
"lzwpdwyygdstthcsqsccrsssyslfybnntyjszdfndpdhtqzmbqlxlcmyffgtjjqwftmnpjwdnlbzcmmcngbdzlqlpnfhyymjylsd"
"chdcjwjcctljcldtljjcbddpndsszycndbjlggjzxsxnlycybjjxxcbylzcfzppgkcxqdzfztjjfjdjxzbnzyjqctyjwhdyczhym"
"djxttmpxsplzcdwslshxypzgtfmlcjtacbbmgdewycyzxdszjyhflystygwhkjyylsjcxgywjcbllcsnddbtzbsclyzczzssqdll"
"mjyyhfllqllxfdyhabxggnywyypllsdldllbjcyxjznlhljdxyyqytdlllbngpfdfbbqbzzmdpjhgclgmjjpgaehhbwcqxajhhhz"
"chxyphjaxhlphjpgpzjqcqzgjjzzgzdmqyybzzphyhybwhazyjhykfgdpfqsdlzmljxjpgalxzdaglmdgxmmzqwtxdxxpfdmmssy"
"mpfmdmmkxksyzyshdzkjsysmmzzzmdydyzzczxbmlstmdyemxckjmztyymzmzzmsshhdccjewxxkljsthwlsqlyjzllsjssdppmh"
"nlgjczyhmxxhgncjmdhxtkgrmxfwmckmwkdcksxqmmmszzydkmsclcmpcjmhrpxqpzdsslcxkyxtwlkjyahzjgzjwcjnxyhmmbml"
"gjxmhlmlgmxctkzmjlyscjsyszhsyjzjcdajzhbsdqjzgwtkqxfkdmsdjlfmnhkzqkjfeypzyszcdpynffmzqykttdzzefmzlbnp"
"plplpbpszalltnlkckqzkgenjlwalkxydpxnhsxqnwqnkxqclhyxxmlnccwlymqyckynnlcjnszkpyzkcqzqljbdmdjhlasqlbyd"
"wqlwdgbqcryddztjybkbwszdxdtnpjdtcnqnfxqqmgnseclstbhpwslctxxlpwydzklnqgzcqapllkqcylbqmqczqcnjslqzdjxl"
"ddhpzqdljjxzqdjyzhhzlkcjqdwjppypqakjyrmpzbnmcxkllzllfqpylllmbsglzysslrsysqtmxyxzqzbscnysyztffmzzsmzq"
"hzssccmlyxwtpzgxzjgzgsjzgkddhtqggzllbjdzlsbzhyxyzhzfywxytymsdnzzyjgtcmtnxqyxjscxhslnndlrytzlryylxqht"
"xsrtzcgyxbnqqzfhykmzjbzymkbpnlyzpblmcnqyzzzsjztjctzhhyzzjrdyzhnfxklfzslkgjtctssyllgzrzbbjzzklpkbczys"
"nnyxbjfbnjzzxcdwlzyjxzzdjjgggrsnjkmsmzjlsjywqsnyhqjsxpjztnlsnshrnynjtwchglbnrjlzxwjqxqkysjycztlqzybb"
"ybyzjqdwgyzcytjcjxckcwdkkzxsnkdnywwyyjqyytlytdjlxwkcjnklccpzcqqdzzqlcsfqchqqgssmjzzllbjjzysjhtsjdysj"
"qjpdszcdchjkjzzlpycgmzndjxbsjzzsyzyhgxcpbjydssxdzncglqmbtsfcbfdzdlznfgfjgfsmpnjqlnblgqcyyxbqgdjjqsrf"
"kztjdhczklbsdzcfytplljgjhtxzcsszzxstjygkgckgynqxjplzbbbgcgyjzgczqszlbjlsjfzgkqqjcgycjbzqtldxrjnbsxxp"
"zshszycfwdsjjhxmfczpfzhqhqmqnknlyhtycgfrzgnqxcgpdlbzcsczqlljblhbdcypscppdymzzxgyhckcpzjgslzlnscnsldl"
"xbmsdlddfjmkdqdhslzxlsznpqpgjdlybdskgqlbzlnlkyyhzttmcjnqtzzfszqktlljtyyllnllqyzqlbdzlslyyzxmdfszsnxl"
"xznczqnbbwskrfbcylctnblgjpmczzlstlxshtzcyzlzbnfmqnlxflcjlyljqcbclzjgnsstbrmhxzhjzclxfnbgxgtqncztmsfz"
"kjmssncljkbhszjntnlzdntlmmjxgzjyjczxyhyhwrwwqnztnfjscpyshzjfyrdjsfscjzbjfzqzchzlxfxsbzqlzsgyftzdcszx"
"zjbjpszkjrhxjzcgbjkhcggtxkjqglxbxfgtrtylxqxhdtsjxhjzjjcmzlcqsbtxwqgxtxxhxftsdkfjhzyjfjxnzldlllcqsqqz"
"qwqxswqtwgwbzcgcllqzbclmqjtzgzyzxljfrmyzflxnsnxxjkxrmjdzdmmyxbsqbhgzmwfwygmjlzbyytgzyccdjyzxsngnyjyz"
"nbgpzjcqsyxsxrtfyzgrhztxszzthcbfclsyxzlzqmzlmplmxzjssfsbysmzqhxxnxrxhqzzzsslyflczjrcrxhhzxqndshxsjjh"
"qcjjbcynsysxjbqjpxzqplmlxzkyxlxcnlcycxxzzlxdlllmjyhzxhyjwkjrwyhcpsgnrzlfzwfzznsxgxflzsxzzzbfcsyjdbrj"
"krdhhjxjljjtgxjxxstjtjxlyxqfcsgswmsbctlqzzwlzzkxjmltmjyhsddbxgzhdlbmyjfrzfcgclyjbpmlysmsxlszjqqhjzfx"
"gfqfqbphngyyqxgztnqwyltlgwgwwhnlfmfgzjmgmgbgtjflyzzgzyzaflsspmlbflcwbjztljjmzlpjjlymqtmyyyfbgygqzgly"
"zdxqyxrqqqhsxyyqxygjtyxfsfsllgnqcygycwfhcccfxpylypllzqxxxxxqqhhsshjzcftsczjxspzwhhhhhapylqnlpqafyhxd"
"ylnkmzqgggddesrenzltzgchyppcsqjjhclljtolnjpzljlhymhezdydsqycddhgznndzclzywllznteydgnlhslpjjbdgwxpcnn"
"tycklkclwkllcasstknzdnnjttlyyzssysszzryljqkcgdhhyrxrzydgrgcwcgzqffbppjfzynakrgywyjpqxxfkjtszzxswzddf"
"bbqtbgtzkznpzfpzxzpjszbmqhkyyxyldkljnypkyghgdzjxxeaxpnznctzcmxcxmmjxnkszqnmnlwbwwqjjyhclstmcsxnjcxxt"
"pcnfdtnnpglllzcjlspblpgjcdtnjjlyarscffjfqwdpgzdwmrzzcgodaxnssnyzrestyjwjyjdbcfxnmwttbqlwstszgybljpxg"
"lbnclgpcbjftmxzljylzxcltpnclcgxtfzjshcrxsfysgdkntlbyjcyjllstgqcbxnhzxbxklylhzlqzlnzcqwgzlgzjncjgcmnz"
"zgjdzxtzjxycyycxxjyyxjjxsssjstsstdppghtcsxwzdcsynptfbchfbblzjclzzdbxgcjlhpxnfzflsyltnwbmnjhszbmdnbcy"
"sccldnycndqlyjjhmqllcsgljjsyfpyyccyltjantjjpwycmmgqyysxdxqmzhszxbftwwzqswqrfkjlzjqqyfbrxjhhfwjgzyqac"
"myfrhcyybynwlpexcczsyyrlttdmqlrkmpbgmyyjprkznbbsqyxbhyzdjdnghpmfsgbwfzmfqmmbzmzdcgjlnnnxyqgmlrygqccy"
"xzlwdkcjcggmcjjfyzzjhycfrrcmtznzxhkqgdjxccjeascrjthpljlrzdjrbcqhjdnrhylyqjsymhzydwcdfryhbbydtssccwbx"
"glpzmlzjdqsscfjmmxjcxjytycghycjwynsxlfemwjnmkllswtxhyyyncmmcyjdqdjzglljwjnkhpzggflccsczmcbltbhbqjxqd"
"jpdjztghglfjawbzyzjltstdhjhctcbchflqmpwdshyytqwcnntjtlnnmnndyyyxsqkxwyyflxxnzwcxypmaelyhgjwzzjbrxxaq"
"jfllpfhhhytzzxsgqjmhspgdzqwbwpjhzjdyjcqwxkthxsqlzyymysdzgnqckknjlwpnsyscsyzlnmhqsyljxbcxtlhzqzpcycyk"
"pppnsxfyzjjrcemhszmnxlxglrwgcstlrsxbygbzgnxcnlnjlclynymdxwtzpalcxpqjcjwtcyyjlblxbzlqmyljbghdslssdmxm"
"bdczsxyhamlczcpjmcnhjyjnsykchskqmczqdllkablwjqsfmocdxjrrlyqchjmybyqlrhetfjzfrfksryxfjdwtsxxywsqjysly"
"xwjhsdlxyyxhbhawhwjcxlmyljcsqlkydttxbzslfdxgxsjkhsxxybssxdpwncmrptqzczenygcxqfjxkjbdmljzmqqxnoxslyxx"
"lylljdzptymhbfsttqqwlhsgynlzzalzxclhtwrrqhlstmypyxjjxmnsjnnbryxyjllyqyltwylqyfmlkljdnlltfzwkzhljmlhl"
"jnljnnlqxylmbhhlnlzxqchxcfxxlhyhjjgbyzzkbxscqdjqdsndzsygzhhmgsxcsymxfepcqwwrbpyyjqryqcyjhqqzyhmwffhg"
"zfrjfcdbxntqyzpcyhhjlfrzgpbxzdbbgrqstlgdgylcqmgchhmfywlzyxkjlypjhsywmqqggzmnzjnsqxlqsyjtcbehsxfszfxz"
"wfllbcyyjdytdthwzsfjmqqyjlmqsxlldttkghybfpwdyysqqrnqwlgwdebzwcyygcnlkjxtmxmyjsxhybrwfymwfrxyymxysctz"
"ztfykmldhqdlgyjnlcryjtlpsxxxywlsbrrjwxhqybhtydnhhxmmywytycnnmnssccdalwztcpqpyjllqzyjswjwzzmmglmxclmx"
"nzmxmzsqtzppjqblpgxjzhfljjhycjsrxwcxsncdlxsyjdcqzxslqyclzxlzzxmxqrjmhrhzjbhmfljlmlclqnldxzlllfyprgjy"
"nxcqqdcmqjzzxhnpnxzmemmsxykynlxsxtljxyhwdcwdzhqyybgybcyscfgfsjnzdrzzxqxrzrqjjymcanhrjtldbpyzbstjhxxz"
"ypbdwfgzzrpymnnkxcqbyxnbnfyckrjjcmjegrzgyclnnzdnkknsjkcljspgyyclqqjybzssqlllkjftbgtylcccdblsppfylgyd"
"tzjqjzgkntsfcxbdkdxxhybbfytyhbclnnytgdhryrnjsbtcsnyjqhklllzslydxxwbcjqsbxnpjzjzjdzfbxxbrmladhcsnclbj"
"dstblprznswsbxbcllxxlzdnzsjpynyxxyftnnfbhjjjgbygjpmmmmsszljmtlyzjxswxtyledqpjmpgqzjgdjlqjwjqllsdgjgy"
"gmscljjxdtygjqjjjcjzcjgdzdshqgzjggcjhqxsnjlzzbxhsgzxcxyljxyxyydfqqjhjfxdhctxjyrxysqtjxyefyyssyxjxncy"
"zxfxcsxszxyyschshxzzzgzzzgfjdldylnpzgsjaztyqzpbxcbdztzczyxxyhhscjshcggqhjhgxhsctmzmehyxgebtclzkkwytj"
"zrslekestdbcyhqqsayxcjxwwgsphjszsdncsjkqcxswxfctynydpccczjqtcwjqjzzzqzljzhlsbhpydxpsxshhezdxfptjqyzc"
"xhyaxncfzyyhxgnqmywntzsjbnhhgymxmxqcnssbcqsjyxxtyyhybcqlmmszmjzzllcogxzaajzyhjmchhcxzsxsdznleyjjzjbh"
"zwjzsqtzpsxzzdsqjjjlnyazphhyysrnqzthzhnyjyjhdzxzlswclybzyecwcycrylchzhzydzydyjdfrjjhtrsqtxyxjrjhojyn"
"xelxsfsfjzghpzsxzszdzcqzbyyklsgsjhczshdgqgxyzgxchxzjwyqwgyhksseqzzndzfkwyssdclzstsymcdhjxxyweyxczayd"
"mpxmdsxybsqmjmzjmtjqlpjyqzcgqhyjhhhqxhlhdldjqcfdwbsxfzzyyschtytyjbhecxhjkgqfxbhyzjfxhwhbdzfyzbchpnpg"
"dydmsxhkhhmamlnbyjtmpxejmcthqbzyfcgtyhwphftgzzezsbzegpbmdskftycmhbllhgpzjxzjgzjyxzsbbqsczzlzscstpgxm"
"jsfdcczjzdjxsybzlfcjsazfgszlwbczzzbyztzynswyjgxzbdsynxlgzbzfygczxbzhzftpbgzgejbstgkdmfhyzzjhzllzzgjq"
"zlsfdjsscbzgpdlfzfzszyzyzsygcxsnxxchczxtzzljfzgqsqqxcjqccccdjcdszzyqjccgxztdlgscxzsyjjqtcclqdqztqchq"
"qyzynzzzpbkhdjfcjfztypqyqttynlmbdktjcpqzjdzfpjsbnjlgyjdxjdcqkzgqkxclbzjtcjdqbxdjjjstcxnxbxqmslyjcxnt"
"jqwwcjjnjjlllhjcwqtbzqqczczpzzdzyddcyzdzccjgtjfzdprntctjdcxtqzdtjnplzbcllctdsxkjzqdmzlbznbtjdcxfczdb"
"czjjltqqpldckztbbzjcqdcjwynllzlzccdwllxwzlxrxntqjczxkjlsgdnqtddglnlajjtnnynkqlldzntdnycygjwyxdxfrsqs"
"tcdenqmrrqzhhqhdldazfkapbggpzrebzzykyqspeqjjglkqzzzjlysyhyzwfqznlzzlzhwcgkypqgnpgblplrrjyxcccgyhsfzf"
"wbzywtgzxyljczwhncjzplfflgskhyjdeyxhlpllllcygxdrzelrhgklzzyhzlyqszzjzqljzflnbhgwlczcfjwspyxzlzlxgccp"
"zbllcxbbbbnbbcbbcrnnzccnrbbnnldcgqyyqxygmqzwnzytyjhyfwtehznjywlccntzyjjcdedpwdztstnjhtymbjnyjzlxtsst"
"phndjxxbyxqtzqddtjtdyztgwscszqflshlnzbcjbhdlyzjyckwtydylbnydsdsycctyszyyebgexhqddwnygyclxtdcystqnygz"
"ascsszzdzlcclzrqxyywljsbymxshzdembbllyyllytdqyshymrqnkfkbfxnnsbychxbwjyhtqbpbsbwdzylkgzskyghqzjxhxjx"
"gnljkzlyycdxlfwfghljgjybxblybxqpqgntzplncybxdjyqydymrbeyjyyhkxxstmxrczzjwxyhybmcflyzhqyzfwxdbxbcwzms"
"lpdmyckfmzklzcyqycclhxfzlydqzpzygyjyzmdxtzfnnyttqtzhgsfcdmlccytzxjcytjmkslpzhysnwllytpzctzccktxdhxxt"
"qcyfksmqccyyazhtjplylzlyjbjxtfnyljyynrxcylmmnxjsmybcsysslzylljjgyldzdlqhfzzblfndsqkczfyhhgqmjdsxyctt"
"xnqnjpyybfcjtyyfbnxejdgyqbjrcnfyyqpghyjsyzngrhtknlnndzntsmgklbygbpyszbydjzsstjztsxzbhbscsbzczptqfzlq"
"flypybbjgszmnxdjmtsyskkbjtxhjcegbsmjyjzcstmljyxrczqscxxqpyzhmkyxxxjcljyrmyygadyskqlnadhrskqxzxztcggz"
"dlmlwxybwsyctbhjhcfcwzsxwwtgzlxqshnyczjxemplsrcgltnzntlzjcyjgdtclglbllqpjmzpapxyzlaktkdwczzbncctdqqz"
"qyjgmcdxltgcszlmlhbglkznnwzndxnhlnmkydlgxdtwcfrjerctzhydxykxhwfzcqshknmqqhzhhymjdjskhxzjzbzzxympajnm"
"ctbxlsxlzynwrtsqgscbptbsgzwyhtlkssswhzzlyytnxjgmjrnsnnnnlskztxgxlsammlbwldqhylakqcqctmycfjbslxclzjcl"
"xxknbnnzlhjphqplsxsckslnhpsfqcytxjjzljldtzjjzdlydjntptnndskjfsljhylzqqzlbthydgdjfdbyadxdzhzjnthqbykn"
"xjjqczmlljzkspldsclbblnnlelxjlbjycxjxgcnlcqplzlznjtsljgyzdzpltqcssfdmnycxgbtjdcznbgbqyqjwgkfhtnbyqzq"
"gbkpbbyzmtjdytblsqmbsxtbnpdxklemyycjynzdtldykzzxtdxhqshygmzsjycctayrzlpwltlkxslzcggexclfxlkjrtlqjaqz"
"ncmbqdkkcxglczjzxjhptdjjmzqykqsecqzdshhadmlzfmmzbgntjnnlhbyjbrbtmlbyjdzxlcjlpldlpcqdhlhzlycblcxccjad"
"qlmzmmsshmybhbnkkbhrsxxjmxmdznnpklbbrhgghfchgmnklltsyyycqlcskymyehywxnxqywbawykqldnntndkhqcgdqktgpkx"
"hcpdhtwnmssyhbwcrwxhjmkmzngwtmlkfghkjyldyycxwhyyclqhkqhtdqkhffldxqwytyydesbpkyrzpjfyyzjceqdzzdlattpb"
"fjllcxdlmjsdxegwgsjqxcfbssszpdyzcxznyxppzydlyjccpltxlnxyzyrscyyytylwwndsahjsygyhgywwaxtjzdaxysrltdps"
"syxfnejdxyzhlxlllzhzsjnyqyqyxyjghzgjcyjchzlycdshhsgczyjscllnxzjjyyxnfsmwfpyllyllabmddhwzxjmcxztzpmlq"
"chsfwzynctlndywlslxhymmylmbwwkyxyaddxylldjpybpwnxjmmmllhafdllaflbnhhbqqjqzjcqjjdjtffkmmmpythygdrjrdd"
"wrqjxnbysrmzdbyytbjhpymyjtjxaahggdqtmystqxkbtzbkjlxrbyqqhxmjjbdjntgtbxpgbktlgqxjjjcdhxqdwjlwrfmjgwqh"
"cnrxswgbtgygbwhswdwrfhwytjjxxxjyzyslphyypyyxhydqpxshxyxgskqhywbdddpplcjlhqeewjgsyykdpplfjthkjltcyjhh"
"jttpltzzcdlyhqkcjqysteeyhkyzyxxyysddjkllpymqyhqgxqhzrhbxpllnqydqhxsxxwgdqbshyllpjjjthyjkyphthyyktyez"
"yenmdshlzrpqfbnfxzbsftlgxsjbswyysksflxlpplbbblnsfbfyzbsjssylpbbffffsscjdstjsxtryjcyffsyzyzbjtlctsbsd"
"hrtjjbytcxyyeylycbnebjdsysyhgsjzbxbytfzwgenhhhthjhhxfwgcstbgxklstyymtmbyxjskzscdyjrcythxzfhmymcxlzns"
"djtxtxrycfyjsbsdyerxhljxbbdeynjghxgckgscymblxjmsznskgxfbnbbthfjyafxwxfbxmyfhdttcxzzpxrsywzdlybbktyqw"
"qjbzypzjznjpzjlztfysbttslmptzrtdxqsjehbnylndxljsqmlhtxtjecxalzzspktlzkqqyfsyjywpcpqfhjhytqxzkrsgtksq"
"czlptxcdyyzsslzslxlzmacpcqbzyxhbsxlzdltztjtylzjyytbzypltxjsjxhlbmytxcqrblzssfjzztnjytxmyjhlhpblcyxqj"
"qqkzzscpzkswalqsplczzjsxgwwwygyatjbbctdkhqhkgtgpbkqyslbxbbckbmllndzstbklggqkqlzbkktfxrmdkbftpzfrtppm"
"ferqnxgjpzsstlbztpszqzsjdhljqlzbpmsmmsxlqqnhknblrddnhxdkddjcyyljfqgzlgsygmjqjkhbpmxyxlytqwlwjcpbmjxc"
"yzydrjbhtdjyeqshtmgsfyplwhlzffnynnhxqhpltbqpfbjwjdbygpnxtbfzjgnnntjshxeawtzylltyqbwjpgxghnnkndjtmszs"
"qynzggnwqtfhclssgmnnnnynzqqxncjdqgzdlfnykljcjllzlmzznnnnsshthxjlzjbbhqjwwycrdhlyqqjbeyfsjhthnrnwjhwp"
"slmssgzttygrqqwrnlalhmjtqjsmxqbjjzjqzyzkxbjqxbjxshzssfglxmxnxfghkzszggslcnnarjxhnlllmzxelglxydjytlfb"
"kbpnlyzfbbhptgjkwetzhkjjxzxxglljlstgshjjyqlqzfkcgnndjsszfdbctwwseqfhqjbsaqtgypjlbxbmmywxgslzhglsgnyf"
"ljbyfdjfngsfmbyzhqffwjsyfyjjphzbyyzffwotjnlmftwlbzgyzqxcdjygzyyryzynyzwegazyhjjlzrthlrmgrjxzclnnnljj"
"yhtbwjybxxbxjjtjteekhwslnnlbsfazpqqbdlqjjtyyqlyzkdksqjnejzldqcgjqnnjsncmrfqthtejmfctyhypymhydmjncfgy"
"yxwshctxrljgjzhzcyyyjltkttntmjlzclzzayyoczlrlbszywjytsjyhbyshfjlykjxxtmzyyltxxypslqyjzyzyypnhmymdyyl"
"blhlsyygqllnjjymsoycbzgdlyxylcqyxtszegxhzglhwbljheyxtwqmakbpqcgyshhegqcmwyywljyjhyyzlljjylhzyhmgsljl"
"jxcjjyclycjbcpzjzjmmwlcjlnqljjjlxyjmlszljqlycmmgcfmmfpqqmfxlqmcffqmmmmhnznfhhjgtthxkhslnchhyqzxtmmqd"
"cydyxyqmyqylddcyaytazdcymdydlzfffmmycqcwzzmabtbyctdmndzggdftypcgqyttssffwbdttqssystwnjhjytsxxylbyyhh"
"whxgzxwznnqzjzjjqjccchykxbzszcnjtllcqxynjnckycynccqnxyewyczdcjycchyjlbtzyycqwlpgpyllgktltlgkgqbgychj"
"xy";

char pinyinFirstLetter(unsigned short hanzi) {
    int index = hanzi - HANZI_START;
    if (index >= 0 && index <= HANZI_COUNT) {
        return firstLetterArray[index];
    } else {
        return '#';
    }
}

@implementation ChineseToPinyin

+ (NSString *) pinyinFromChiniseString:(NSString *)string {
    if(!string || ![string length]) return nil;
    
    NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding( kCFStringEncodingGB_18030_2000);
    NSData *gb2312_data = [string dataUsingEncoding:enc];
    
    unsigned char ucHigh, ucLow;
    int nCode;
    NSString *strValue = @"";
    int iLen = [gb2312_data length];
    char *gb2312_string = (char *)[gb2312_data bytes];
    for (int i = 0; i < iLen; i++) {
        if ((unsigned char)gb2312_string[i] < 0x80 ) {
            strValue = [strValue stringByAppendingFormat:@"%c", gb2312_string[i] > 95 ? gb2312_string[i] - 32 : gb2312_string[i]];
            continue;
        }
        
        ucHigh = (unsigned char)gb2312_string[i];
        ucLow  = (unsigned char)gb2312_string[i + 1];
        if ( ucHigh < 0xa1 || ucLow < 0xa1)
            continue;
        else
            nCode = (ucHigh - 0xa0) * 100 + ucLow - 0xa0;
        
        NSString *strRes = FindLetter(nCode);
        strValue = [strValue stringByAppendingString:strRes];
        i++;
    }    
    return [[NSString alloc] initWithString:strValue]
            ;
}

+ (char) sortSectionTitle:(NSString *)string {
    int cLetter = 0;
    if( !string || 0 == [string length] )
        cLetter = '#';
    else {    
        if(([string characterAtIndex:0] > 64 && [string characterAtIndex:0] < 91) || 
           ([string characterAtIndex:0] > 96 && [string characterAtIndex:0] < 123) ) {
            cLetter = [string characterAtIndex:0];
        } else
            cLetter = pinyinFirstLetter((unsigned short)[string characterAtIndex:0]);
        
        if(cLetter > 95)
            cLetter -= 32;
    }    
    return cLetter;
}

@end
View Code ChineseToPinyin文件

 

其他:

 MVC 要根据实际的情况去分模块,做到代码精简,逻辑清晰

修改info里面的Bundle display name 为一个 App设置软件名字

拼音的接口类(封装的类)的使用方法很简单   [ChineseToPinyin pinyinFromChiniseString:self]

 

 

posted @ 2015-09-15 13:31  ywda  阅读(2216)  评论(0编辑  收藏  举报