Commit 8d05af0c8765b5d849be87f153b8363b97f0ce5d

Authored by 左丞
1 parent 235e6900
Exists in newLive

no message

YouerLiveVideo/YouerLiveVideo.xcodeproj/project.pbxproj
... ... @@ -47,6 +47,7 @@
47 47 599B2CE11DE52F7E00B4F7FD /* UMShareMenuSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CCE1DE52F7E00B4F7FD /* UMShareMenuSelectionView.m */; };
48 48 599B2CE21DE52F7E00B4F7FD /* UMSocialShareScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CD01DE52F7E00B4F7FD /* UMSocialShareScrollView.m */; };
49 49 599B2CE31DE52F7E00B4F7FD /* UMSocialUIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 599B2CD21DE52F7E00B4F7FD /* UMSocialUIManager.m */; };
  50 + 59AE3DF91ECE8A90003E2C62 /* pinyin.c in Sources */ = {isa = PBXBuildFile; fileRef = 59AE3DF71ECE8A90003E2C62 /* pinyin.c */; };
50 51 59BA13251E25CF2B00540DE0 /* AliyunPlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */; };
51 52 59BA13271E25CF4B00540DE0 /* AliyunPlayerSDK.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
52 53 59BA13311E25D1C000540DE0 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 59BA13301E25D1C000540DE0 /* Reachability.m */; };
... ... @@ -329,6 +330,8 @@
329 330 599B2CD01DE52F7E00B4F7FD /* UMSocialShareScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UMSocialShareScrollView.m; sourceTree = "<group>"; };
330 331 599B2CD11DE52F7E00B4F7FD /* UMSocialUIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSocialUIManager.h; sourceTree = "<group>"; };
331 332 599B2CD21DE52F7E00B4F7FD /* UMSocialUIManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UMSocialUIManager.m; sourceTree = "<group>"; };
  333 + 59AE3DF71ECE8A90003E2C62 /* pinyin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pinyin.c; sourceTree = "<group>"; };
  334 + 59AE3DF81ECE8A90003E2C62 /* pinyin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pinyin.h; sourceTree = "<group>"; };
332 335 59BA13241E25CF2B00540DE0 /* AliyunPlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AliyunPlayerSDK.framework; path = YouerLiveVideo/lib/AliyunPlayerSDK.framework; sourceTree = "<group>"; };
333 336 59BA132F1E25D1C000540DE0 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
334 337 59BA13301E25D1C000540DE0 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
... ... @@ -1224,6 +1227,8 @@
1224 1227 children = (
1225 1228 BFBB83D41ECC4446008B404B /* PassWordView.swift */,
1226 1229 BFBB83D51ECC4446008B404B /* PassWordView.xib */,
  1230 + 59AE3DF71ECE8A90003E2C62 /* pinyin.c */,
  1231 + 59AE3DF81ECE8A90003E2C62 /* pinyin.h */,
1227 1232 59F801A91DD57253000A78B0 /* ZSDSetPasswordView.h */,
1228 1233 59F801AA1DD57253000A78B0 /* ZSDSetPasswordView.m */,
1229 1234 BFDFDEC81DD55C0D0040F102 /* account.swift */,
... ... @@ -1498,6 +1503,7 @@
1498 1503 BF7B75A81E305A6D0011D5C7 /* UIScrollView+MJRefresh.m in Sources */,
1499 1504 BF25E0021DDAA36A003EC0C1 /* UIButton+WebCache.m in Sources */,
1500 1505 BF7B759E1E305A6D0011D5C7 /* MJRefreshBackGifFooter.m in Sources */,
  1506 + 59AE3DF91ECE8A90003E2C62 /* pinyin.c in Sources */,
1501 1507 BF25DFF81DDAA36A003EC0C1 /* NSData+ImageContentType.m in Sources */,
1502 1508 BF25E0151DDAAF73003EC0C1 /* SVIndefiniteAnimatedView.m in Sources */,
1503 1509 BFF5F4921DD5B7CA00D33B89 /* SwiftyJSON.swift in Sources */,
... ...
YouerLiveVideo/YouerLiveVideo/YouerLiveVideo-Bridging-Header.h
... ... @@ -25,4 +25,5 @@
25 25 #import "Reachability.h"
26 26 #import "MJRefresh.h"
27 27 #import "JYScrollView.h"
  28 +#import "pinyin.h"
28 29 #endif /* YouerLiveVideo_Bridging_Header_h */
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/SearchTVStationListViewController.swift
... ... @@ -8,21 +8,78 @@
8 8  
9 9 import UIKit
10 10  
11   -class SearchTVStationListViewController: UIViewController {
  11 +class SearchTVStationListViewController: UIViewController,UISearchBarDelegate {
12 12 var alList:[String] = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
13   - var grad:[String] = ["小学","初中","高中","全部年段"]
  13 + var grad:[String] = []
  14 +
  15 + @IBOutlet weak var selectTableView: UITableView!
  16 +
14 17 @IBOutlet weak var downIcon: UIImageView!
15 18 @IBOutlet weak var gradName: UILabel!
16 19 @IBOutlet weak var tableView: UITableView!
17 20 @IBOutlet weak var selectView: UIView!
18   -
  21 + var dataSet:[TVStationInfor] = []
  22 + var dataDic:[String:[TVStationInfor]] = [:]
  23 + var allKeys:[String] = []
19 24 override func viewDidLoad() {
20 25 super.viewDidLoad()
21 26 gradName.text = "全部年段"
22 27 tableView.tintColor = UIColor.lightGray
  28 + AppDelegate.instance().httpServer.getAllSchool(parameters: nil) { (str, error) in
  29 + httpJsonResule(jsonString: str, error: error, successHandler: { (json) in
  30 + self.grad.append("全部年段")
  31 + for item in json.contentData().arrayValue{
  32 + self.dataSet.append(TVStationInfor(json: item))
  33 + for (index,gr) in self.grad.enumerated(){
  34 + if item["f_SchoolType"].stringValue == gr{
  35 + break
  36 + }
  37 + if index == self.grad.count-1{
  38 + self.grad.insert(item["f_SchoolType"].stringValue, at: 0)
  39 + }
  40 + }
  41 + }
  42 + self.dataSet = self.dataSet.sorted { (t1, t2) -> Bool in
  43 + return getFirstLetter(str: t1.f_SchoolName) < getFirstLetter(str: t2.f_SchoolName)
  44 + }
  45 + self.sortDataSet(arr: self.dataSet,type: self.grad.last!)
  46 + }, failHandler: { (error) in
  47 +
  48 + })
  49 + }
23 50 // Do any additional setup after loading the view.
24 51 }
25   -
  52 +
  53 + //在一个的列表选择所有当前要求的年段的列表并放到dic中
  54 + func sortDataSet(arr:[TVStationInfor],type:String){
  55 + dataDic.removeAll()
  56 + var array:[TVStationInfor] = []
  57 + if type == grad.last{
  58 + array = arr
  59 + }else{
  60 + for item in arr {
  61 + if item.f_SchoolType == type{
  62 + array.append(item)
  63 + }
  64 + }
  65 + }
  66 + for al in alList {
  67 + var tmp:[TVStationInfor] = []
  68 + for item in array {
  69 + if getFirstLetter(str: item.f_SchoolName) == al{
  70 + tmp.append(item)
  71 + }
  72 + }
  73 + if tmp.count > 0{
  74 + dataDic.updateValue(tmp, forKey: al)
  75 + }
  76 + }
  77 + allKeys = Array(dataDic.keys).sorted(by: { (s1, s2) -> Bool in
  78 + return s1 < s2
  79 + })
  80 + tableView.reloadData()
  81 + }
  82 +
26 83 override func didReceiveMemoryWarning() {
27 84 super.didReceiveMemoryWarning()
28 85 // Dispose of any resources that can be recreated.
... ... @@ -30,24 +87,21 @@ class SearchTVStationListViewController: UIViewController {
30 87  
31 88 @IBAction func selectGradClick(_ sender: UIButton) {
32 89 selectView.isHidden = false
  90 + selectTableView.reloadData()
33 91 }
34   -
35 92  
36   - @IBAction func selectBtnClick(_ sender: UIButton) {
37   - selectView.isHidden = true
38   - switch sender.tag {
39   - case 101:
40   - break
41   - case 102:
42   - break
43   - case 103:
44   - break
45   - case 104:
46   - break
47   - default:
48   - break
  93 + //搜索:根据搜索框中内容帅选全部符合的列表
  94 + func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
  95 + searchBar.resignFirstResponder()
  96 + if searchBar.text != nil && searchBar.text != ""{
  97 + var arr:[TVStationInfor] = []
  98 + for item in dataSet {
  99 + if item.f_SchoolName.contains(searchBar.text!) {
  100 + arr.append(item)
  101 + }
  102 + }
  103 + sortDataSet(arr: arr, type: gradName.text!)
49 104 }
50   - gradName.text = grad[sender.tag-101]
51 105 }
52 106  
53 107 /*
... ... @@ -64,38 +118,84 @@ class SearchTVStationListViewController: UIViewController {
64 118  
65 119 extension SearchTVStationListViewController:UITableViewDataSource,UITableViewDelegate{
66 120 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
67   -
  121 + if tableView == selectTableView{
  122 + selectView.isHidden = true
  123 + gradName.text = grad[indexPath.row]
  124 + sortDataSet(arr: dataSet,type: grad[indexPath.row])
  125 + }
68 126 }
69 127  
70 128 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
71   - return 1
  129 + if tableView == selectTableView{
  130 + return grad.count
  131 + }else{
  132 + return dataDic[allKeys[section]]!.count
  133 + }
  134 +
72 135 }
73 136  
74 137 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
75   - let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
76   - return cell
  138 + if tableView == selectTableView{
  139 + let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SearchSelectCell
  140 + cell.selectName.text = grad[indexPath.row]
  141 + return cell
  142 + }else{
  143 + let item = dataDic[allKeys[indexPath.section]]![indexPath.row]
  144 + let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SearchTVStationListCell
  145 + cell.stationName.text = item.f_SchoolName
  146 + cell.tvStationImage.sd_setImage(with: URL(string: item.f_Logo), placeholderImage: UIImage(named:"icon"))
  147 + return cell
  148 + }
  149 +
77 150 }
78 151  
79 152 func sectionIndexTitles(for tableView: UITableView) -> [String]? {
80   - return alList+["#"]
  153 + if tableView == selectTableView{
  154 + return []
  155 + }else{
  156 + return allKeys+["#"]
  157 + }
  158 +
81 159 }
82 160  
83 161 func numberOfSections(in tableView: UITableView) -> Int {
84   - return alList.count
  162 + if tableView == selectTableView{
  163 + return 1
  164 + }else{
  165 + return dataDic.keys.count
  166 + }
  167 +
85 168 }
86 169  
87 170 func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
88   - return alList[section]
  171 + if tableView == selectTableView{
  172 + return nil
  173 + }else{
  174 + return allKeys[section]
  175 + }
89 176 }
90 177  
91 178 func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
92   - return 44
  179 + if tableView == selectTableView{
  180 + return 0
  181 + }else{
  182 + return 44
  183 + }
  184 + }
  185 +
  186 + func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
  187 + return 1
93 188 }
94 189 }
95 190  
96 191 class SearchTVStationListCell: UITableViewCell {
97   -
98 192 @IBOutlet weak var stationName: UILabel!
99 193 @IBOutlet weak var tvStationImage: UIImageView!
100 194  
101 195 }
  196 +
  197 +class SearchSelectCell: UITableViewCell {
  198 +
  199 + @IBOutlet weak var selectName: UILabel!
  200 +
  201 +}
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStation.storyboard
... ... @@ -204,181 +204,47 @@
204 204 <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LO5-7p-BlF">
205 205 <rect key="frame" x="0.0" y="92" width="375" height="575"/>
206 206 <subviews>
207   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pA5-mr-wp5">
208   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
209   - <subviews>
210   - <button opaque="NO" tag="101" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fd9-K0-dbd">
211   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
212   - <connections>
213   - <action selector="selectBtnClick:" destination="zPk-GV-x5H" eventType="touchUpInside" id="9rC-7O-cx4"/>
214   - </connections>
215   - </button>
216   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Unb-Qo-FiA">
217   - <rect key="frame" x="16" y="0.0" width="343" height="0.0"/>
218   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
219   - <constraints>
220   - <constraint firstAttribute="height" id="BI9-34-fQB"/>
221   - </constraints>
222   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
223   - <nil key="textColor"/>
224   - <nil key="highlightedColor"/>
225   - </label>
226   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="小学" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rF3-mJ-pPr">
227   - <rect key="frame" x="170" y="13" width="35" height="21"/>
228   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
229   - <nil key="textColor"/>
230   - <nil key="highlightedColor"/>
231   - </label>
232   - </subviews>
233   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
234   - <constraints>
235   - <constraint firstAttribute="bottom" secondItem="fd9-K0-dbd" secondAttribute="bottom" id="6rw-GD-06f"/>
236   - <constraint firstItem="rF3-mJ-pPr" firstAttribute="centerY" secondItem="pA5-mr-wp5" secondAttribute="centerY" id="Ncu-FL-IUg"/>
237   - <constraint firstItem="fd9-K0-dbd" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="top" id="S2u-C5-cpE"/>
238   - <constraint firstAttribute="trailing" secondItem="Unb-Qo-FiA" secondAttribute="trailing" constant="16" id="Wee-qc-CcZ"/>
239   - <constraint firstAttribute="trailing" secondItem="fd9-K0-dbd" secondAttribute="trailing" id="Wz9-N2-5FD"/>
240   - <constraint firstAttribute="height" constant="48" id="YGb-kx-Bvs"/>
241   - <constraint firstItem="Unb-Qo-FiA" firstAttribute="leading" secondItem="pA5-mr-wp5" secondAttribute="leading" constant="16" id="eAi-qh-uTW"/>
242   - <constraint firstItem="fd9-K0-dbd" firstAttribute="leading" secondItem="pA5-mr-wp5" secondAttribute="leading" id="lsn-sl-gUI"/>
243   - <constraint firstItem="rF3-mJ-pPr" firstAttribute="centerX" secondItem="pA5-mr-wp5" secondAttribute="centerX" id="sKe-eU-InU"/>
244   - <constraint firstItem="Unb-Qo-FiA" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="top" id="zmH-Rb-P8G"/>
245   - </constraints>
246   - </view>
247   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pKJ-J9-5CR">
248   - <rect key="frame" x="0.0" y="48" width="375" height="48"/>
249   - <subviews>
250   - <button opaque="NO" tag="102" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="veE-AU-inD">
251   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
252   - <connections>
253   - <action selector="selectBtnClick:" destination="zPk-GV-x5H" eventType="touchUpInside" id="eza-Xp-8Wo"/>
254   - </connections>
255   - </button>
256   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ma4-Vs-Ai5">
257   - <rect key="frame" x="16" y="0.0" width="343" height="0.0"/>
258   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
259   - <constraints>
260   - <constraint firstAttribute="height" id="jyL-SO-bbs"/>
261   - </constraints>
262   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
263   - <nil key="textColor"/>
264   - <nil key="highlightedColor"/>
265   - </label>
266   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="初中" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FLD-Vw-eZ9">
267   - <rect key="frame" x="170" y="13" width="35" height="21"/>
268   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
269   - <nil key="textColor"/>
270   - <nil key="highlightedColor"/>
271   - </label>
272   - </subviews>
273   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
274   - <constraints>
275   - <constraint firstItem="ma4-Vs-Ai5" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="top" id="Em3-dK-r7A"/>
276   - <constraint firstItem="veE-AU-inD" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="top" id="FHs-Rr-oDw"/>
277   - <constraint firstItem="FLD-Vw-eZ9" firstAttribute="centerX" secondItem="pKJ-J9-5CR" secondAttribute="centerX" id="MaF-vn-NFk"/>
278   - <constraint firstItem="FLD-Vw-eZ9" firstAttribute="centerY" secondItem="pKJ-J9-5CR" secondAttribute="centerY" id="OSS-PS-lIG"/>
279   - <constraint firstAttribute="trailing" secondItem="ma4-Vs-Ai5" secondAttribute="trailing" constant="16" id="TK9-u0-NYJ"/>
280   - <constraint firstAttribute="trailing" secondItem="veE-AU-inD" secondAttribute="trailing" id="he0-3w-aKO"/>
281   - <constraint firstItem="ma4-Vs-Ai5" firstAttribute="leading" secondItem="pKJ-J9-5CR" secondAttribute="leading" constant="16" id="hvr-W0-KtG"/>
282   - <constraint firstItem="veE-AU-inD" firstAttribute="leading" secondItem="pKJ-J9-5CR" secondAttribute="leading" id="iIG-ef-wiQ"/>
283   - <constraint firstAttribute="bottom" secondItem="veE-AU-inD" secondAttribute="bottom" id="nnX-Fn-UsA"/>
284   - <constraint firstAttribute="height" constant="48" id="zHI-3d-Hhy"/>
285   - </constraints>
286   - </view>
287   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jQ0-hJ-LW9">
288   - <rect key="frame" x="0.0" y="96" width="375" height="48"/>
289   - <subviews>
290   - <button opaque="NO" tag="103" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rrk-re-JuF">
291   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
292   - <connections>
293   - <action selector="selectBtnClick:" destination="zPk-GV-x5H" eventType="touchUpInside" id="apL-Gu-0OT"/>
294   - </connections>
295   - </button>
296   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TwL-7i-SFE">
297   - <rect key="frame" x="16" y="0.0" width="343" height="0.0"/>
298   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
299   - <constraints>
300   - <constraint firstAttribute="height" id="wf7-2t-CcQ"/>
301   - </constraints>
302   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
303   - <nil key="textColor"/>
304   - <nil key="highlightedColor"/>
305   - </label>
306   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="高中" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bx3-SK-e4z">
307   - <rect key="frame" x="170" y="13" width="35" height="21"/>
308   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
309   - <nil key="textColor"/>
310   - <nil key="highlightedColor"/>
311   - </label>
312   - </subviews>
313   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
314   - <constraints>
315   - <constraint firstAttribute="bottom" secondItem="rrk-re-JuF" secondAttribute="bottom" id="1aG-FJ-kgi"/>
316   - <constraint firstItem="rrk-re-JuF" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="top" id="4mU-tH-19D"/>
317   - <constraint firstItem="rrk-re-JuF" firstAttribute="leading" secondItem="jQ0-hJ-LW9" secondAttribute="leading" id="8FP-Fd-szb"/>
318   - <constraint firstAttribute="trailing" secondItem="TwL-7i-SFE" secondAttribute="trailing" constant="16" id="FJF-cd-6MQ"/>
319   - <constraint firstItem="TwL-7i-SFE" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="top" id="HJS-18-xud"/>
320   - <constraint firstAttribute="height" constant="48" id="L2i-9Z-Zje"/>
321   - <constraint firstItem="TwL-7i-SFE" firstAttribute="leading" secondItem="jQ0-hJ-LW9" secondAttribute="leading" constant="16" id="WjE-rt-bZ1"/>
322   - <constraint firstAttribute="trailing" secondItem="rrk-re-JuF" secondAttribute="trailing" id="ech-I6-0JJ"/>
323   - <constraint firstItem="bx3-SK-e4z" firstAttribute="centerX" secondItem="jQ0-hJ-LW9" secondAttribute="centerX" id="l2K-Ec-fBQ"/>
324   - <constraint firstItem="bx3-SK-e4z" firstAttribute="centerY" secondItem="jQ0-hJ-LW9" secondAttribute="centerY" id="yXB-yv-iX2"/>
325   - </constraints>
326   - </view>
327   - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PdH-vs-Gjn">
328   - <rect key="frame" x="0.0" y="144" width="375" height="48"/>
329   - <subviews>
330   - <button opaque="NO" tag="104" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bqH-ub-Nyu">
331   - <rect key="frame" x="0.0" y="0.0" width="375" height="48"/>
  207 + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="IbJ-62-QUz">
  208 + <rect key="frame" x="0.0" y="0.0" width="375" height="575"/>
  209 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  210 + <prototypes>
  211 + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell" id="1Ns-5p-fDD" customClass="SearchSelectCell" customModule="YouerLiveVideo" customModuleProvider="target">
  212 + <rect key="frame" x="0.0" y="28" width="375" height="44"/>
  213 + <autoresizingMask key="autoresizingMask"/>
  214 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="1Ns-5p-fDD" id="vyn-xK-ILQ">
  215 + <rect key="frame" x="0.0" y="0.0" width="375" height="43"/>
  216 + <autoresizingMask key="autoresizingMask"/>
  217 + <subviews>
  218 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vrU-H8-dYc">
  219 + <rect key="frame" x="166" y="11" width="42" height="21"/>
  220 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  221 + <nil key="textColor"/>
  222 + <nil key="highlightedColor"/>
  223 + </label>
  224 + </subviews>
  225 + <constraints>
  226 + <constraint firstItem="vrU-H8-dYc" firstAttribute="centerX" secondItem="vyn-xK-ILQ" secondAttribute="centerX" id="5wV-xH-hMA"/>
  227 + <constraint firstItem="vrU-H8-dYc" firstAttribute="centerY" secondItem="vyn-xK-ILQ" secondAttribute="centerY" id="zWG-wG-2M2"/>
  228 + </constraints>
  229 + </tableViewCellContentView>
  230 + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
332 231 <connections>
333   - <action selector="selectBtnClick:" destination="zPk-GV-x5H" eventType="touchUpInside" id="a7l-bV-toi"/>
  232 + <outlet property="selectName" destination="vrU-H8-dYc" id="ywV-L6-dGm"/>
334 233 </connections>
335   - </button>
336   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BGW-tg-2H6">
337   - <rect key="frame" x="16" y="0.0" width="343" height="0.0"/>
338   - <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
339   - <constraints>
340   - <constraint firstAttribute="height" id="eIc-hV-0qY"/>
341   - </constraints>
342   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
343   - <nil key="textColor"/>
344   - <nil key="highlightedColor"/>
345   - </label>
346   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="全部学段" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VfQ-qt-gdx">
347   - <rect key="frame" x="152" y="13" width="70" height="21"/>
348   - <fontDescription key="fontDescription" type="system" pointSize="17"/>
349   - <nil key="textColor"/>
350   - <nil key="highlightedColor"/>
351   - </label>
352   - </subviews>
353   - <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
354   - <constraints>
355   - <constraint firstItem="BGW-tg-2H6" firstAttribute="leading" secondItem="PdH-vs-Gjn" secondAttribute="leading" constant="16" id="46b-DV-o1H"/>
356   - <constraint firstAttribute="trailing" secondItem="bqH-ub-Nyu" secondAttribute="trailing" id="8sC-if-wSg"/>
357   - <constraint firstAttribute="height" constant="48" id="Kcs-Jq-OVL"/>
358   - <constraint firstItem="VfQ-qt-gdx" firstAttribute="centerY" secondItem="PdH-vs-Gjn" secondAttribute="centerY" id="OqZ-vB-B5C"/>
359   - <constraint firstAttribute="trailing" secondItem="BGW-tg-2H6" secondAttribute="trailing" constant="16" id="Rw7-eI-JeT"/>
360   - <constraint firstItem="VfQ-qt-gdx" firstAttribute="centerX" secondItem="PdH-vs-Gjn" secondAttribute="centerX" id="UYW-un-bnL"/>
361   - <constraint firstItem="bqH-ub-Nyu" firstAttribute="leading" secondItem="PdH-vs-Gjn" secondAttribute="leading" id="gA6-4E-cUz"/>
362   - <constraint firstAttribute="bottom" secondItem="bqH-ub-Nyu" secondAttribute="bottom" id="kIr-4b-3GM"/>
363   - <constraint firstItem="BGW-tg-2H6" firstAttribute="top" secondItem="PdH-vs-Gjn" secondAttribute="top" id="waV-La-z9s"/>
364   - <constraint firstItem="bqH-ub-Nyu" firstAttribute="top" secondItem="PdH-vs-Gjn" secondAttribute="top" id="z5F-fk-r4o"/>
365   - </constraints>
366   - </view>
  234 + </tableViewCell>
  235 + </prototypes>
  236 + <connections>
  237 + <outlet property="dataSource" destination="zPk-GV-x5H" id="i24-vK-mDm"/>
  238 + <outlet property="delegate" destination="zPk-GV-x5H" id="oP3-9x-9qA"/>
  239 + </connections>
  240 + </tableView>
367 241 </subviews>
368 242 <color key="backgroundColor" white="0.66666666666666663" alpha="0.50786493288590606" colorSpace="calibratedWhite"/>
369 243 <constraints>
370   - <constraint firstItem="pKJ-J9-5CR" firstAttribute="top" secondItem="pA5-mr-wp5" secondAttribute="bottom" id="As5-CP-OI8"/>
371   - <constraint firstItem="PdH-vs-Gjn" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="EiX-RE-2mV"/>
372   - <constraint firstItem="pA5-mr-wp5" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="NGc-W1-gFS"/>
373   - <constraint firstItem="jQ0-hJ-LW9" firstAttribute="top" secondItem="pKJ-J9-5CR" secondAttribute="bottom" id="Rxs-mm-zbn"/>
374   - <constraint firstItem="jQ0-hJ-LW9" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="SBR-LH-mkw"/>
375   - <constraint firstItem="PdH-vs-Gjn" firstAttribute="top" secondItem="jQ0-hJ-LW9" secondAttribute="bottom" id="gRO-D5-TbH"/>
376   - <constraint firstItem="pKJ-J9-5CR" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="krW-ip-UgT"/>
377   - <constraint firstAttribute="trailing" secondItem="pA5-mr-wp5" secondAttribute="trailing" id="n92-8Z-2xl"/>
378   - <constraint firstAttribute="trailing" secondItem="PdH-vs-Gjn" secondAttribute="trailing" id="nWt-wP-1JQ"/>
379   - <constraint firstItem="pA5-mr-wp5" firstAttribute="top" secondItem="LO5-7p-BlF" secondAttribute="top" id="nsI-me-a5D"/>
380   - <constraint firstAttribute="trailing" secondItem="pKJ-J9-5CR" secondAttribute="trailing" id="pqL-tc-0qy"/>
381   - <constraint firstAttribute="trailing" secondItem="jQ0-hJ-LW9" secondAttribute="trailing" id="yc8-tE-p0i"/>
  244 + <constraint firstItem="IbJ-62-QUz" firstAttribute="leading" secondItem="LO5-7p-BlF" secondAttribute="leading" id="JAu-J6-dIy"/>
  245 + <constraint firstAttribute="bottom" secondItem="IbJ-62-QUz" secondAttribute="bottom" id="JKF-1f-M6c"/>
  246 + <constraint firstAttribute="trailing" secondItem="IbJ-62-QUz" secondAttribute="trailing" id="KD6-Yw-jTW"/>
  247 + <constraint firstItem="IbJ-62-QUz" firstAttribute="top" secondItem="LO5-7p-BlF" secondAttribute="top" id="o12-8S-W6V"/>
382 248 </constraints>
383 249 </view>
384 250 <searchBar contentMode="redraw" placeholder="搜索" translatesAutoresizingMaskIntoConstraints="NO" id="ChK-me-hP6">
... ... @@ -387,6 +253,9 @@
387 253 <constraint firstAttribute="height" constant="44" id="wzh-nF-6vU"/>
388 254 </constraints>
389 255 <textInputTraits key="textInputTraits"/>
  256 + <connections>
  257 + <outlet property="delegate" destination="zPk-GV-x5H" id="KiT-X3-fSi"/>
  258 + </connections>
390 259 </searchBar>
391 260 </subviews>
392 261 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
... ... @@ -410,6 +279,7 @@
410 279 <connections>
411 280 <outlet property="downIcon" destination="30V-Xl-lRB" id="GHM-Kf-F2D"/>
412 281 <outlet property="gradName" destination="EkU-OV-GCU" id="1x2-I5-Dmb"/>
  282 + <outlet property="selectTableView" destination="IbJ-62-QUz" id="g3g-lN-96y"/>
413 283 <outlet property="selectView" destination="LO5-7p-BlF" id="BCJ-8J-krQ"/>
414 284 <outlet property="tableView" destination="o4U-1y-nqL" id="mW2-XQ-YbM"/>
415 285 </connections>
... ...
YouerLiveVideo/YouerLiveVideo/controllers/TVStation/TVStationViewController.swift
... ... @@ -196,6 +196,7 @@ class TVStationViewControllerCollectionCell:UICollectionViewCell{
196 196 }
197 197  
198 198 class TVStationInfor {
  199 + var f_SchoolType:String!
199 200 var f_Id:String! //标识字段,Guid标识 ,
200 201 var f_DeleteMark:Bool = false //删除标识,1-已删除 ,
201 202 var f_CreatorTime:String!//创建时间 ,
... ... @@ -212,6 +213,7 @@ class TVStationInfor {
212 213 var f_Url:String!// 机构地址
213 214  
214 215 init(json:JSON){
  216 + f_SchoolType = json["f_SchoolType"].stringValue
215 217 f_Id = json["f_Id"].stringValue
216 218 f_DeleteMark = json["f_DeleteMark"].boolValue
217 219 f_CreatorTime = json["f_CreatorTime"].stringValue
... ...
YouerLiveVideo/YouerLiveVideo/util/network.swift
... ... @@ -124,6 +124,10 @@ final class HTTPServer{
124 124 static let URL_COURSEGETTESTCATAGORY=HOST+"/api/Course/GetTestCatagory" //获取考点目录(已初始化成ztree所要求的格式)
125 125 static let URL_COURSEGETTELEVISIONSTATIONCATAGORY=HOST+"/api/Course/GetTelevisionStationCatagory" //获取电视台目录
126 126  
  127 + //MARK:-APP
  128 + static let URL_APPGETALLSCHOOL=HOST+"/api/App/GetAllSchool" //获取所有学校
  129 + static let URL_APPGETSCHOOLBYID=HOST+"/api/App/GetSchoolById" //获取学校详情
  130 +
127 131 //MARK:-DataStatistics(url)
128 132 static let URL_DATASTATISTICGETSCHOOLGENERAL=HOST+"/api/DataStatistics/GetSchoolGeneral" //获取前十学校的综合排行
129 133 static let URL_DATASTATISTICGETSCHOOLPV=HOST+"/api/DataStatistics/GetSchoolPv" //获取前十学校的阅读量排行
... ... @@ -290,6 +294,17 @@ final class HTTPServer{
290 294 KHttp.GET(url: HTTPServer.URL_COURSEGETTELEVISIONSTATIONCATAGORY, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler)
291 295 }
292 296  
  297 + //MARK:-APP
  298 + //获取所有学校
  299 + func getAllSchool(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){
  300 + KHttp.GET(url: HTTPServer.URL_APPGETALLSCHOOL, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler)
  301 + }
  302 +
  303 + //获取学校详情
  304 + func getSchoolById(parameters: [String : AnyObject]?,completionHandler:@escaping (String?, NSError?) -> ()){
  305 + KHttp.GET(url: HTTPServer.URL_APPGETSCHOOLBYID, parameters: parameters,headers:["Authorization":token!], completionHandler: completionHandler)
  306 + }
  307 +
293 308  
294 309 //MARK:-DataStatistics
295 310 //获取前十学校的综合排行
... ...
YouerLiveVideo/YouerLiveVideo/util/pinyin.c 0 → 100644
... ... @@ -0,0 +1,235 @@
  1 +/*
  2 + * pinyin.c
  3 + * Chinese Pinyin First Letter
  4 + *
  5 + * Created by George on 4/21/10.
  6 + * Copyright 2010 RED/SAFI. All rights reserved.
  7 + *
  8 + */
  9 +#define HANZI_START 19968
  10 +#define HANZI_COUNT 20902
  11 +
  12 +static char firstLetterArray[HANZI_COUNT] =
  13 +"ydkqsxnwzssxjbymgcczqpssqbycdscdqldylybssjgyqzjjfgcclzznwdwzjljpfyynnjjtmynzwzhflzppqhgccyynmjqyxxgd"
  14 +"nnsnsjnjnsnnmlnrxyfsngnnnnqzggllyjlnyzssecykyyhqwjssggyxyqyjtwktjhychmnxjtlhjyqbyxdldwrrjnwysrldzjpc"
  15 +"bzjjbrcfslnczstzfxxchtrqggddlyccssymmrjcyqzpwwjjyfcrwfdfzqpyddwyxkyjawjffxjbcftzyhhycyswccyxsclcxxwz"
  16 +"cxnbgnnxbxlzsqsbsjpysazdhmdzbqbscwdzzyytzhbtsyyfzgntnxjywqnknphhlxgybfmjnbjhhgqtjcysxstkzglyckglysmz"
  17 +"xyalmeldccxgzyrjxjzlnjzcqkcnnjwhjczccqljststbnhbtyxceqxkkwjyflzqlyhjxspsfxlmpbysxxxytccnylllsjxfhjxp"
  18 +"jbtffyabyxbcczbzyclwlczggbtssmdtjcxpthyqtgjjxcjfzkjzjqnlzwlslhdzbwjncjzyzsqnycqynzcjjwybrtwpyftwexcs"
  19 +"kdzctbyhyzqyyjxzcfbzzmjyxxsdczottbzljwfckscsxfyrlrygmbdthjxsqjccsbxyytswfbjdztnbcnzlcyzzpsacyzzsqqcs"
  20 +"hzqydxlbpjllmqxqydzxsqjtzpxlcglqdcwzfhctdjjsfxjejjtlbgxsxjmyjjqpfzasyjnsydjxkjcdjsznbartcclnjqmwnqnc"
  21 +"lllkbdbzzsyhqcltwlccrshllzntylnewyzyxczxxgdkdmtcedejtsyyssdqdfmxdbjlkrwnqlybglxnlgtgxbqjdznyjsjyjcjm"
  22 +"rnymgrcjczgjmzmgxmmryxkjnymsgmzzymknfxmbdtgfbhcjhkylpfmdxlxjjsmsqgzsjlqdldgjycalcmzcsdjllnxdjffffjcn"
  23 +"fnnffpfkhkgdpqxktacjdhhzdddrrcfqyjkqccwjdxhwjlyllzgcfcqjsmlzpbjjblsbcjggdckkdezsqcckjgcgkdjtjllzycxk"
  24 +"lqccgjcltfpcqczgwbjdqyzjjbyjhsjddwgfsjgzkcjctllfspkjgqjhzzljplgjgjjthjjyjzccmlzlyqbgjwmljkxzdznjqsyz"
  25 +"mljlljkywxmkjlhskjhbmclyymkxjqlbmllkmdxxkwyxwslmlpsjqqjqxyqfjtjdxmxxllcrqbsyjbgwynnggbcnxpjtgpapfgdj"
  26 +"qbhbncfjyzjkjkhxqfgqckfhygkhdkllsdjqxpqyaybnqsxqnszswhbsxwhxwbzzxdmndjbsbkbbzklylxgwxjjwaqzmywsjqlsj"
  27 +"xxjqwjeqxnchetlzalyyyszzpnkyzcptlshtzcfycyxyljsdcjqagyslcllyyysslqqqnldxzsccscadycjysfsgbfrsszqsbxjp"
  28 +"sjysdrckgjlgtkzjzbdktcsyqpyhstcldjnhmymcgxyzhjdctmhltxzhylamoxyjcltyfbqqjpfbdfehthsqhzywwcncxcdwhowg"
  29 +"yjlegmdqcwgfjhcsntmydolbygnqwesqpwnmlrydzszzlyqpzgcwxhnxpyxshmdqjgztdppbfbhzhhjyfdzwkgkzbldnzsxhqeeg"
  30 +"zxylzmmzyjzgszxkhkhtxexxgylyapsthxdwhzydpxagkydxbhnhnkdnjnmyhylpmgecslnzhkxxlbzzlbmlsfbhhgsgyyggbhsc"
  31 +"yajtxglxtzmcwzydqdqmngdnllszhngjzwfyhqswscelqajynytlsxthaznkzzsdhlaxxtwwcjhqqtddwzbcchyqzflxpslzqgpz"
  32 +"sznglydqtbdlxntctajdkywnsyzljhhdzckryyzywmhychhhxhjkzwsxhdnxlyscqydpslyzwmypnkxyjlkchtyhaxqsyshxasmc"
  33 +"hkdscrsgjpwqsgzjlwwschsjhsqnhnsngndantbaalczmsstdqjcjktscjnxplggxhhgoxzcxpdmmhldgtybynjmxhmrzplxjzck"
  34 +"zxshflqxxcdhxwzpckczcdytcjyxqhlxdhypjqxnlsyydzozjnhhqezysjyayxkypdgxddnsppyzndhthrhxydpcjjhtcnnctlhb"
  35 +"ynyhmhzllnnxmylllmdcppxhmxdkycyrdltxjchhznxclcclylnzsxnjzzlnnnnwhyqsnjhxynttdkyjpychhyegkcwtwlgjrlgg"
  36 +"tgtygyhpyhylqyqgcwyqkpyyettttlhyylltyttsylnyzwgywgpydqqzzdqnnkcqnmjjzzbxtqfjkdffbtkhzkbxdjjkdjjtlbwf"
  37 +"zpptkqtztgpdwntpjyfalqmkgxbcclzfhzcllllanpnxtjklcclgyhdzfgyddgcyyfgydxkssendhykdndknnaxxhbpbyyhxccga"
  38 +"pfqyjjdmlxcsjzllpcnbsxgjyndybwjspcwjlzkzddtacsbkzdyzypjzqsjnkktknjdjgyepgtlnyqnacdntcyhblgdzhbbydmjr"
  39 +"egkzyheyybjmcdtafzjzhgcjnlghldwxjjkytcyksssmtwcttqzlpbszdtwcxgzagyktywxlnlcpbclloqmmzsslcmbjcsdzkydc"
  40 +"zjgqjdsmcytzqqlnzqzxssbpkdfqmddzzsddtdmfhtdycnaqjqkypbdjyyxtljhdrqxlmhkydhrnlklytwhllrllrcxylbnsrnzz"
  41 +"symqzzhhkyhxksmzsyzgcxfbnbsqlfzxxnnxkxwymsddyqnggqmmyhcdzttfgyyhgsbttybykjdnkyjbelhdypjqnfxfdnkzhqks"
  42 +"byjtzbxhfdsbdaswpawajldyjsfhblcnndnqjtjnchxfjsrfwhzfmdrfjyxwzpdjkzyjympcyznynxfbytfyfwygdbnzzzdnytxz"
  43 +"emmqbsqehxfznbmflzzsrsyqjgsxwzjsprytjsjgskjjgljjynzjjxhgjkymlpyyycxycgqzswhwlyrjlpxslcxmnsmwklcdnkny"
  44 +"npsjszhdzeptxmwywxyysywlxjqcqxzdclaeelmcpjpclwbxsqhfwrtfnjtnqjhjqdxhwlbyccfjlylkyynldxnhycstyywncjtx"
  45 +"ywtrmdrqnwqcmfjdxzmhmayxnwmyzqtxtlmrspwwjhanbxtgzypxyyrrclmpamgkqjszycymyjsnxtplnbappypylxmyzkynldgy"
  46 +"jzcchnlmzhhanqnbgwqtzmxxmllhgdzxnhxhrxycjmffxywcfsbssqlhnndycannmtcjcypnxnytycnnymnmsxndlylysljnlxys"
  47 +"sqmllyzlzjjjkyzzcsfbzxxmstbjgnxnchlsnmcjscyznfzlxbrnnnylmnrtgzqysatswryhyjzmgdhzgzdwybsscskxsyhytsxg"
  48 +"cqgxzzbhyxjscrhmkkbsczjyjymkqhzjfnbhmqhysnjnzybknqmcjgqhwlsnzswxkhljhyybqcbfcdsxdldspfzfskjjzwzxsddx"
  49 +"jseeegjscssygclxxnwwyllymwwwgydkzjggggggsycknjwnjpcxbjjtqtjwdsspjxcxnzxnmelptfsxtllxcljxjjljsxctnswx"
  50 +"lennlyqrwhsycsqnybyaywjejqfwqcqqcjqgxaldbzzyjgkgxbltqyfxjltpydkyqhpmatlcndnkxmtxynhklefxdllegqtymsaw"
  51 +"hzmljtkynxlyjzljeeyybqqffnlyxhdsctgjhxywlkllxqkcctnhjlqmkkzgcyygllljdcgydhzwypysjbzjdzgyzzhywyfqdtyz"
  52 +"szyezklymgjjhtsmqwyzljyywzcsrkqyqltdxwcdrjalwsqzwbdcqyncjnnszjlncdcdtlzzzacqqzzddxyblxcbqjylzllljddz"
  53 +"jgyqyjzyxnyyyexjxksdaznyrdlzyyynjlslldyxjcykywnqcclddnyyynycgczhjxcclgzqjgnwnncqqjysbzzxyjxjnxjfzbsb"
  54 +"dsfnsfpzxhdwztdmpptflzzbzdmyypqjrsdzsqzsqxbdgcpzswdwcsqzgmdhzxmwwfybpngphdmjthzsmmbgzmbzjcfzhfcbbnmq"
  55 +"dfmbcmcjxlgpnjbbxgyhyyjgptzgzmqbqdcgybjxlwnkydpdymgcftpfxyztzxdzxtgkptybbclbjaskytssqyymscxfjhhlslls"
  56 +"jpqjjqaklyldlycctsxmcwfgngbqxllllnyxtyltyxytdpjhnhgnkbyqnfjyyzbyyessessgdyhfhwtcqbsdzjtfdmxhcnjzymqw"
  57 +"srxjdzjqbdqbbsdjgnfbknbxdkqhmkwjjjgdllthzhhyyyyhhsxztyyyccbdbpypzyccztjpzywcbdlfwzcwjdxxhyhlhwczxjtc"
  58 +"nlcdpxnqczczlyxjjcjbhfxwpywxzpcdzzbdccjwjhmlxbqxxbylrddgjrrctttgqdczwmxfytmmzcwjwxyywzzkybzcccttqnhx"
  59 +"nwxxkhkfhtswoccjybcmpzzykbnnzpbthhjdlszddytyfjpxyngfxbyqxzbhxcpxxtnzdnnycnxsxlhkmzxlthdhkghxxsshqyhh"
  60 +"cjyxglhzxcxnhekdtgqxqypkdhentykcnymyyjmkqyyyjxzlthhqtbyqhxbmyhsqckwwyllhcyylnneqxqwmcfbdccmljggxdqkt"
  61 +"lxkknqcdgcjwyjjlyhhqyttnwchhxcxwherzjydjccdbqcdgdnyxzdhcqrxcbhztqcbxwgqwyybxhmbymykdyecmqkyaqyngyzsl"
  62 +"fnkkqgyssqyshngjctxkzycssbkyxhyylstycxqthysmnscpmmgcccccmnztasmgqzjhklosjylswtmqzyqkdzljqqyplzycztcq"
  63 +"qpbbcjzclpkhqcyyxxdtdddsjcxffllchqxmjlwcjcxtspycxndtjshjwhdqqqckxyamylsjhmlalygxcyydmamdqmlmcznnyybz"
  64 +"xkyflmcncmlhxrcjjhsylnmtjggzgywjxsrxcwjgjqhqzdqjdcjjskjkgdzcgjjyjylxzxxcdqhhheslmhlfsbdjsyyshfyssczq"
  65 +"lpbdrfnztzdkykhsccgkwtqzckmsynbcrxqbjyfaxpzzedzcjykbcjwhyjbqzzywnyszptdkzpfpbaztklqnhbbzptpptyzzybhn"
  66 +"ydcpzmmcycqmcjfzzdcmnlfpbplngqjtbttajzpzbbdnjkljqylnbzqhksjznggqstzkcxchpzsnbcgzkddzqanzgjkdrtlzldwj"
  67 +"njzlywtxndjzjhxnatncbgtzcsskmljpjytsnwxcfjwjjtkhtzplbhsnjssyjbhbjyzlstlsbjhdnwqpslmmfbjdwajyzccjtbnn"
  68 +"nzwxxcdslqgdsdpdzgjtqqpsqlyyjzlgyhsdlctcbjtktyczjtqkbsjlgnnzdncsgpynjzjjyyknhrpwszxmtncszzyshbyhyzax"
  69 +"ywkcjtllckjjtjhgcssxyqyczbynnlwqcglzgjgqyqcczssbcrbcskydznxjsqgxssjmecnstjtpbdlthzwxqwqczexnqczgwesg"
  70 +"ssbybstscslccgbfsdqnzlccglllzghzcthcnmjgyzazcmsksstzmmzckbjygqljyjppldxrkzyxccsnhshhdznlzhzjjcddcbcj"
  71 +"xlbfqbczztpqdnnxljcthqzjgylklszzpcjdscqjhjqkdxgpbajynnsmjtzdxlcjyryynhjbngzjkmjxltbsllrzpylssznxjhll"
  72 +"hyllqqzqlsymrcncxsljmlzltzldwdjjllnzggqxppskyggggbfzbdkmwggcxmcgdxjmcjsdycabxjdlnbcddygskydqdxdjjyxh"
  73 +"saqazdzfslqxxjnqzylblxxwxqqzbjzlfbblylwdsljhxjyzjwtdjcyfqzqzzdzsxzzqlzcdzfxhwspynpqzmlpplffxjjnzzyls"
  74 +"jnyqzfpfzgsywjjjhrdjzzxtxxglghtdxcskyswmmtcwybazbjkshfhgcxmhfqhyxxyzftsjyzbxyxpzlchmzmbxhzzssyfdmncw"
  75 +"dabazlxktcshhxkxjjzjsthygxsxyyhhhjwxkzxssbzzwhhhcwtzzzpjxsyxqqjgzyzawllcwxznxgyxyhfmkhydwsqmnjnaycys"
  76 +"pmjkgwcqhylajgmzxhmmcnzhbhxclxdjpltxyjkdyylttxfqzhyxxsjbjnayrsmxyplckdnyhlxrlnllstycyyqygzhhsccsmcct"
  77 +"zcxhyqfpyyrpbflfqnntszlljmhwtcjqyzwtlnmlmdwmbzzsnzrbpdddlqjjbxtcsnzqqygwcsxfwzlxccrszdzmcyggdyqsgtnn"
  78 +"nlsmymmsyhfbjdgyxccpshxczcsbsjyygjmpbwaffyfnxhydxzylremzgzzyndsznlljcsqfnxxkptxzgxjjgbmyyssnbtylbnlh"
  79 +"bfzdcyfbmgqrrmzszxysjtznnydzzcdgnjafjbdknzblczszpsgcycjszlmnrznbzzldlnllysxsqzqlcxzlsgkbrxbrbzcycxzj"
  80 +"zeeyfgklzlnyhgzcgzlfjhgtgwkraajyzkzqtsshjjxdzyznynnzyrzdqqhgjzxsszbtkjbbfrtjxllfqwjgclqtymblpzdxtzag"
  81 +"bdhzzrbgjhwnjtjxlkscfsmwlldcysjtxkzscfwjlbnntzlljzllqblcqmqqcgcdfpbphzczjlpyyghdtgwdxfczqyyyqysrclqz"
  82 +"fklzzzgffcqnwglhjycjjczlqzzyjbjzzbpdcsnnjgxdqnknlznnnnpsntsdyfwwdjzjysxyyczcyhzwbbyhxrylybhkjksfxtjj"
  83 +"mmchhlltnyymsxxyzpdjjycsycwmdjjkqyrhllngpngtlyycljnnnxjyzfnmlrgjjtyzbsyzmsjyjhgfzqmsyxrszcytlrtqzsst"
  84 +"kxgqkgsptgxdnjsgcqcqhmxggztqydjjznlbznxqlhyqgggthqscbyhjhhkyygkggcmjdzllcclxqsftgjslllmlcskctbljszsz"
  85 +"mmnytpzsxqhjcnnqnyexzqzcpshkzzyzxxdfgmwqrllqxrfztlystctmjcsjjthjnxtnrztzfqrhcgllgcnnnnjdnlnnytsjtlny"
  86 +"xsszxcgjzyqpylfhdjsbbdczgjjjqzjqdybssllcmyttmqnbhjqmnygjyeqyqmzgcjkpdcnmyzgqllslnclmholzgdylfzslncnz"
  87 +"lylzcjeshnyllnxnjxlyjyyyxnbcljsswcqqnnyllzldjnllzllbnylnqchxyyqoxccqkyjxxxyklksxeyqhcqkkkkcsnyxxyqxy"
  88 +"gwtjohthxpxxhsnlcykychzzcbwqbbwjqcscszsslcylgddsjzmmymcytsdsxxscjpqqsqylyfzychdjynywcbtjsydchcyddjlb"
  89 +"djjsodzyqyskkyxdhhgqjyohdyxwgmmmazdybbbppbcmnnpnjzsmtxerxjmhqdntpjdcbsnmssythjtslmltrcplzszmlqdsdmjm"
  90 +"qpnqdxcfrnnfsdqqyxhyaykqyddlqyyysszbydslntfgtzqbzmchdhczcwfdxtmqqsphqwwxsrgjcwnntzcqmgwqjrjhtqjbbgwz"
  91 +"fxjhnqfxxqywyyhyscdydhhqmrmtmwctbszppzzglmzfollcfwhmmsjzttdhlmyffytzzgzyskjjxqyjzqbhmbzclyghgfmshpcf"
  92 +"zsnclpbqsnjyzslxxfpmtyjygbxlldlxpzjyzjyhhzcywhjylsjexfszzywxkzjlnadymlymqjpwxxhxsktqjezrpxxzghmhwqpw"
  93 +"qlyjjqjjzszcnhjlchhnxjlqwzjhbmzyxbdhhypylhlhlgfwlcfyytlhjjcwmscpxstkpnhjxsntyxxtestjctlsslstdlllwwyh"
  94 +"dnrjzsfgxssyczykwhtdhwjglhtzdqdjzxxqgghltzphcsqfclnjtclzpfstpdynylgmjllycqhynspchylhqyqtmzymbywrfqyk"
  95 +"jsyslzdnjmpxyyssrhzjnyqtqdfzbwwdwwrxcwggyhxmkmyyyhmxmzhnksepmlqqmtcwctmxmxjpjjhfxyyzsjzhtybmstsyjznq"
  96 +"jnytlhynbyqclcycnzwsmylknjxlggnnpjgtysylymzskttwlgsmzsylmpwlcwxwqcssyzsyxyrhssntsrwpccpwcmhdhhxzdzyf"
  97 +"jhgzttsbjhgyglzysmyclllxbtyxhbbzjkssdmalhhycfygmqypjyjqxjllljgclzgqlycjcctotyxmtmshllwlqfxymzmklpszz"
  98 +"cxhkjyclctyjcyhxsgyxnnxlzwpyjpxhjwpjpwxqqxlxsdhmrslzzydwdtcxknstzshbsccstplwsscjchjlcgchssphylhfhhxj"
  99 +"sxallnylmzdhzxylsxlmzykcldyahlcmddyspjtqjzlngjfsjshctsdszlblmssmnyymjqbjhrzwtyydchjljapzwbgqxbkfnbjd"
  100 +"llllyylsjydwhxpsbcmljpscgbhxlqhyrljxyswxhhzlldfhlnnymjljyflyjycdrjlfsyzfsllcqyqfgqyhnszlylmdtdjcnhbz"
  101 +"llnwlqxygyyhbmgdhxxnhlzzjzxczzzcyqzfngwpylcpkpykpmclgkdgxzgxwqbdxzzkzfbddlzxjtpjpttbythzzdwslcpnhslt"
  102 +"jxxqlhyxxxywzyswttzkhlxzxzpyhgzhknfsyhntjrnxfjcpjztwhplshfcrhnslxxjxxyhzqdxqwnnhyhmjdbflkhcxcwhjfyjc"
  103 +"fpqcxqxzyyyjygrpynscsnnnnchkzdyhflxxhjjbyzwttxnncyjjymswyxqrmhxzwfqsylznggbhyxnnbwttcsybhxxwxyhhxyxn"
  104 +"knyxmlywrnnqlxbbcljsylfsytjzyhyzawlhorjmnsczjxxxyxchcyqryxqzddsjfslyltsffyxlmtyjmnnyyyxltzcsxqclhzxl"
  105 +"wyxzhnnlrxkxjcdyhlbrlmbrdlaxksnlljlyxxlynrylcjtgncmtlzllcyzlpzpzyawnjjfybdyyzsepckzzqdqpbpsjpdyttbdb"
  106 +"bbyndycncpjmtmlrmfmmrwyfbsjgygsmdqqqztxmkqwgxllpjgzbqrdjjjfpkjkcxbljmswldtsjxldlppbxcwkcqqbfqbccajzg"
  107 +"mykbhyhhzykndqzybpjnspxthlfpnsygyjdbgxnhhjhzjhstrstldxskzysybmxjlxyslbzyslzxjhfybqnbylljqkygzmcyzzym"
  108 +"ccslnlhzhwfwyxzmwyxtynxjhbyymcysbmhysmydyshnyzchmjjmzcaahcbjbbhblytylsxsnxgjdhkxxtxxnbhnmlngsltxmrhn"
  109 +"lxqqxmzllyswqgdlbjhdcgjyqyymhwfmjybbbyjyjwjmdpwhxqldyapdfxxbcgjspckrssyzjmslbzzjfljjjlgxzgyxyxlszqkx"
  110 +"bexyxhgcxbpndyhwectwwcjmbtxchxyqqllxflyxlljlssnwdbzcmyjclwswdczpchqekcqbwlcgydblqppqzqfnqdjhymmcxtxd"
  111 +"rmzwrhxcjzylqxdyynhyyhrslnrsywwjjymtltllgtqcjzyabtckzcjyccqlysqxalmzynywlwdnzxqdllqshgpjfjljnjabcqzd"
  112 +"jgthhsstnyjfbswzlxjxrhgldlzrlzqzgsllllzlymxxgdzhgbdphzpbrlwnjqbpfdwonnnhlypcnjccndmbcpbzzncyqxldomzb"
  113 +"lzwpdwyygdstthcsqsccrsssyslfybnntyjszdfndpdhtqzmbqlxlcmyffgtjjqwftmnpjwdnlbzcmmcngbdzlqlpnfhyymjylsd"
  114 +"chdcjwjcctljcldtljjcbddpndsszycndbjlggjzxsxnlycybjjxxcbylzcfzppgkcxqdzfztjjfjdjxzbnzyjqctyjwhdyczhym"
  115 +"djxttmpxsplzcdwslshxypzgtfmlcjtacbbmgdewycyzxdszjyhflystygwhkjyylsjcxgywjcbllcsnddbtzbsclyzczzssqdll"
  116 +"mjyyhfllqllxfdyhabxggnywyypllsdldllbjcyxjznlhljdxyyqytdlllbngpfdfbbqbzzmdpjhgclgmjjpgaehhbwcqxajhhhz"
  117 +"chxyphjaxhlphjpgpzjqcqzgjjzzgzdmqyybzzphyhybwhazyjhykfgdpfqsdlzmljxjpgalxzdaglmdgxmmzqwtxdxxpfdmmssy"
  118 +"mpfmdmmkxksyzyshdzkjsysmmzzzmdydyzzczxbmlstmdyemxckjmztyymzmzzmsshhdccjewxxkljsthwlsqlyjzllsjssdppmh"
  119 +"nlgjczyhmxxhgncjmdhxtkgrmxfwmckmwkdcksxqmmmszzydkmsclcmpcjmhrpxqpzdsslcxkyxtwlkjyahzjgzjwcjnxyhmmbml"
  120 +"gjxmhlmlgmxctkzmjlyscjsyszhsyjzjcdajzhbsdqjzgwtkqxfkdmsdjlfmnhkzqkjfeypzyszcdpynffmzqykttdzzefmzlbnp"
  121 +"plplpbpszalltnlkckqzkgenjlwalkxydpxnhsxqnwqnkxqclhyxxmlnccwlymqyckynnlcjnszkpyzkcqzqljbdmdjhlasqlbyd"
  122 +"wqlwdgbqcryddztjybkbwszdxdtnpjdtcnqnfxqqmgnseclstbhpwslctxxlpwydzklnqgzcqapllkqcylbqmqczqcnjslqzdjxl"
  123 +"ddhpzqdljjxzqdjyzhhzlkcjqdwjppypqakjyrmpzbnmcxkllzllfqpylllmbsglzysslrsysqtmxyxzqzbscnysyztffmzzsmzq"
  124 +"hzssccmlyxwtpzgxzjgzgsjzgkddhtqggzllbjdzlsbzhyxyzhzfywxytymsdnzzyjgtcmtnxqyxjscxhslnndlrytzlryylxqht"
  125 +"xsrtzcgyxbnqqzfhykmzjbzymkbpnlyzpblmcnqyzzzsjztjctzhhyzzjrdyzhnfxklfzslkgjtctssyllgzrzbbjzzklpkbczys"
  126 +"nnyxbjfbnjzzxcdwlzyjxzzdjjgggrsnjkmsmzjlsjywqsnyhqjsxpjztnlsnshrnynjtwchglbnrjlzxwjqxqkysjycztlqzybb"
  127 +"ybyzjqdwgyzcytjcjxckcwdkkzxsnkdnywwyyjqyytlytdjlxwkcjnklccpzcqqdzzqlcsfqchqqgssmjzzllbjjzysjhtsjdysj"
  128 +"qjpdszcdchjkjzzlpycgmzndjxbsjzzsyzyhgxcpbjydssxdzncglqmbtsfcbfdzdlznfgfjgfsmpnjqlnblgqcyyxbqgdjjqsrf"
  129 +"kztjdhczklbsdzcfytplljgjhtxzcsszzxstjygkgckgynqxjplzbbbgcgyjzgczqszlbjlsjfzgkqqjcgycjbzqtldxrjnbsxxp"
  130 +"zshszycfwdsjjhxmfczpfzhqhqmqnknlyhtycgfrzgnqxcgpdlbzcsczqlljblhbdcypscppdymzzxgyhckcpzjgslzlnscnsldl"
  131 +"xbmsdlddfjmkdqdhslzxlsznpqpgjdlybdskgqlbzlnlkyyhzttmcjnqtzzfszqktlljtyyllnllqyzqlbdzlslyyzxmdfszsnxl"
  132 +"xznczqnbbwskrfbcylctnblgjpmczzlstlxshtzcyzlzbnfmqnlxflcjlyljqcbclzjgnsstbrmhxzhjzclxfnbgxgtqncztmsfz"
  133 +"kjmssncljkbhszjntnlzdntlmmjxgzjyjczxyhyhwrwwqnztnfjscpyshzjfyrdjsfscjzbjfzqzchzlxfxsbzqlzsgyftzdcszx"
  134 +"zjbjpszkjrhxjzcgbjkhcggtxkjqglxbxfgtrtylxqxhdtsjxhjzjjcmzlcqsbtxwqgxtxxhxftsdkfjhzyjfjxnzldlllcqsqqz"
  135 +"qwqxswqtwgwbzcgcllqzbclmqjtzgzyzxljfrmyzflxnsnxxjkxrmjdzdmmyxbsqbhgzmwfwygmjlzbyytgzyccdjyzxsngnyjyz"
  136 +"nbgpzjcqsyxsxrtfyzgrhztxszzthcbfclsyxzlzqmzlmplmxzjssfsbysmzqhxxnxrxhqzzzsslyflczjrcrxhhzxqndshxsjjh"
  137 +"qcjjbcynsysxjbqjpxzqplmlxzkyxlxcnlcycxxzzlxdlllmjyhzxhyjwkjrwyhcpsgnrzlfzwfzznsxgxflzsxzzzbfcsyjdbrj"
  138 +"krdhhjxjljjtgxjxxstjtjxlyxqfcsgswmsbctlqzzwlzzkxjmltmjyhsddbxgzhdlbmyjfrzfcgclyjbpmlysmsxlszjqqhjzfx"
  139 +"gfqfqbphngyyqxgztnqwyltlgwgwwhnlfmfgzjmgmgbgtjflyzzgzyzaflsspmlbflcwbjztljjmzlpjjlymqtmyyyfbgygqzgly"
  140 +"zdxqyxrqqqhsxyyqxygjtyxfsfsllgnqcygycwfhcccfxpylypllzqxxxxxqqhhsshjzcftsczjxspzwhhhhhapylqnlpqafyhxd"
  141 +"ylnkmzqgggddesrenzltzgchyppcsqjjhclljtolnjpzljlhymhezdydsqycddhgznndzclzywllznteydgnlhslpjjbdgwxpcnn"
  142 +"tycklkclwkllcasstknzdnnjttlyyzssysszzryljqkcgdhhyrxrzydgrgcwcgzqffbppjfzynakrgywyjpqxxfkjtszzxswzddf"
  143 +"bbqtbgtzkznpzfpzxzpjszbmqhkyyxyldkljnypkyghgdzjxxeaxpnznctzcmxcxmmjxnkszqnmnlwbwwqjjyhclstmcsxnjcxxt"
  144 +"pcnfdtnnpglllzcjlspblpgjcdtnjjlyarscffjfqwdpgzdwmrzzcgodaxnssnyzrestyjwjyjdbcfxnmwttbqlwstszgybljpxg"
  145 +"lbnclgpcbjftmxzljylzxcltpnclcgxtfzjshcrxsfysgdkntlbyjcyjllstgqcbxnhzxbxklylhzlqzlnzcqwgzlgzjncjgcmnz"
  146 +"zgjdzxtzjxycyycxxjyyxjjxsssjstsstdppghtcsxwzdcsynptfbchfbblzjclzzdbxgcjlhpxnfzflsyltnwbmnjhszbmdnbcy"
  147 +"sccldnycndqlyjjhmqllcsgljjsyfpyyccyltjantjjpwycmmgqyysxdxqmzhszxbftwwzqswqrfkjlzjqqyfbrxjhhfwjgzyqac"
  148 +"myfrhcyybynwlpexcczsyyrlttdmqlrkmpbgmyyjprkznbbsqyxbhyzdjdnghpmfsgbwfzmfqmmbzmzdcgjlnnnxyqgmlrygqccy"
  149 +"xzlwdkcjcggmcjjfyzzjhycfrrcmtznzxhkqgdjxccjeascrjthpljlrzdjrbcqhjdnrhylyqjsymhzydwcdfryhbbydtssccwbx"
  150 +"glpzmlzjdqsscfjmmxjcxjytycghycjwynsxlfemwjnmkllswtxhyyyncmmcyjdqdjzglljwjnkhpzggflccsczmcbltbhbqjxqd"
  151 +"jpdjztghglfjawbzyzjltstdhjhctcbchflqmpwdshyytqwcnntjtlnnmnndyyyxsqkxwyyflxxnzwcxypmaelyhgjwzzjbrxxaq"
  152 +"jfllpfhhhytzzxsgqjmhspgdzqwbwpjhzjdyjcqwxkthxsqlzyymysdzgnqckknjlwpnsyscsyzlnmhqsyljxbcxtlhzqzpcycyk"
  153 +"pppnsxfyzjjrcemhszmnxlxglrwgcstlrsxbygbzgnxcnlnjlclynymdxwtzpalcxpqjcjwtcyyjlblxbzlqmyljbghdslssdmxm"
  154 +"bdczsxyhamlczcpjmcnhjyjnsykchskqmczqdllkablwjqsfmocdxjrrlyqchjmybyqlrhetfjzfrfksryxfjdwtsxxywsqjysly"
  155 +"xwjhsdlxyyxhbhawhwjcxlmyljcsqlkydttxbzslfdxgxsjkhsxxybssxdpwncmrptqzczenygcxqfjxkjbdmljzmqqxnoxslyxx"
  156 +"lylljdzptymhbfsttqqwlhsgynlzzalzxclhtwrrqhlstmypyxjjxmnsjnnbryxyjllyqyltwylqyfmlkljdnlltfzwkzhljmlhl"
  157 +"jnljnnlqxylmbhhlnlzxqchxcfxxlhyhjjgbyzzkbxscqdjqdsndzsygzhhmgsxcsymxfepcqwwrbpyyjqryqcyjhqqzyhmwffhg"
  158 +"zfrjfcdbxntqyzpcyhhjlfrzgpbxzdbbgrqstlgdgylcqmgchhmfywlzyxkjlypjhsywmqqggzmnzjnsqxlqsyjtcbehsxfszfxz"
  159 +"wfllbcyyjdytdthwzsfjmqqyjlmqsxlldttkghybfpwdyysqqrnqwlgwdebzwcyygcnlkjxtmxmyjsxhybrwfymwfrxyymxysctz"
  160 +"ztfykmldhqdlgyjnlcryjtlpsxxxywlsbrrjwxhqybhtydnhhxmmywytycnnmnssccdalwztcpqpyjllqzyjswjwzzmmglmxclmx"
  161 +"nzmxmzsqtzppjqblpgxjzhfljjhycjsrxwcxsncdlxsyjdcqzxslqyclzxlzzxmxqrjmhrhzjbhmfljlmlclqnldxzlllfyprgjy"
  162 +"nxcqqdcmqjzzxhnpnxzmemmsxykynlxsxtljxyhwdcwdzhqyybgybcyscfgfsjnzdrzzxqxrzrqjjymcanhrjtldbpyzbstjhxxz"
  163 +"ypbdwfgzzrpymnnkxcqbyxnbnfyckrjjcmjegrzgyclnnzdnkknsjkcljspgyyclqqjybzssqlllkjftbgtylcccdblsppfylgyd"
  164 +"tzjqjzgkntsfcxbdkdxxhybbfytyhbclnnytgdhryrnjsbtcsnyjqhklllzslydxxwbcjqsbxnpjzjzjdzfbxxbrmladhcsnclbj"
  165 +"dstblprznswsbxbcllxxlzdnzsjpynyxxyftnnfbhjjjgbygjpmmmmsszljmtlyzjxswxtyledqpjmpgqzjgdjlqjwjqllsdgjgy"
  166 +"gmscljjxdtygjqjjjcjzcjgdzdshqgzjggcjhqxsnjlzzbxhsgzxcxyljxyxyydfqqjhjfxdhctxjyrxysqtjxyefyyssyxjxncy"
  167 +"zxfxcsxszxyyschshxzzzgzzzgfjdldylnpzgsjaztyqzpbxcbdztzczyxxyhhscjshcggqhjhgxhsctmzmehyxgebtclzkkwytj"
  168 +"zrslekestdbcyhqqsayxcjxwwgsphjszsdncsjkqcxswxfctynydpccczjqtcwjqjzzzqzljzhlsbhpydxpsxshhezdxfptjqyzc"
  169 +"xhyaxncfzyyhxgnqmywntzsjbnhhgymxmxqcnssbcqsjyxxtyyhybcqlmmszmjzzllcogxzaajzyhjmchhcxzsxsdznleyjjzjbh"
  170 +"zwjzsqtzpsxzzdsqjjjlnyazphhyysrnqzthzhnyjyjhdzxzlswclybzyecwcycrylchzhzydzydyjdfrjjhtrsqtxyxjrjhojyn"
  171 +"xelxsfsfjzghpzsxzszdzcqzbyyklsgsjhczshdgqgxyzgxchxzjwyqwgyhksseqzzndzfkwyssdclzstsymcdhjxxyweyxczayd"
  172 +"mpxmdsxybsqmjmzjmtjqlpjyqzcgqhyjhhhqxhlhdldjqcfdwbsxfzzyyschtytyjbhecxhjkgqfxbhyzjfxhwhbdzfyzbchpnpg"
  173 +"dydmsxhkhhmamlnbyjtmpxejmcthqbzyfcgtyhwphftgzzezsbzegpbmdskftycmhbllhgpzjxzjgzjyxzsbbqsczzlzscstpgxm"
  174 +"jsfdcczjzdjxsybzlfcjsazfgszlwbczzzbyztzynswyjgxzbdsynxlgzbzfygczxbzhzftpbgzgejbstgkdmfhyzzjhzllzzgjq"
  175 +"zlsfdjsscbzgpdlfzfzszyzyzsygcxsnxxchczxtzzljfzgqsqqxcjqccccdjcdszzyqjccgxztdlgscxzsyjjqtcclqdqztqchq"
  176 +"qyzynzzzpbkhdjfcjfztypqyqttynlmbdktjcpqzjdzfpjsbnjlgyjdxjdcqkzgqkxclbzjtcjdqbxdjjjstcxnxbxqmslyjcxnt"
  177 +"jqwwcjjnjjlllhjcwqtbzqqczczpzzdzyddcyzdzccjgtjfzdprntctjdcxtqzdtjnplzbcllctdsxkjzqdmzlbznbtjdcxfczdb"
  178 +"czjjltqqpldckztbbzjcqdcjwynllzlzccdwllxwzlxrxntqjczxkjlsgdnqtddglnlajjtnnynkqlldzntdnycygjwyxdxfrsqs"
  179 +"tcdenqmrrqzhhqhdldazfkapbggpzrebzzykyqspeqjjglkqzzzjlysyhyzwfqznlzzlzhwcgkypqgnpgblplrrjyxcccgyhsfzf"
  180 +"wbzywtgzxyljczwhncjzplfflgskhyjdeyxhlpllllcygxdrzelrhgklzzyhzlyqszzjzqljzflnbhgwlczcfjwspyxzlzlxgccp"
  181 +"zbllcxbbbbnbbcbbcrnnzccnrbbnnldcgqyyqxygmqzwnzytyjhyfwtehznjywlccntzyjjcdedpwdztstnjhtymbjnyjzlxtsst"
  182 +"phndjxxbyxqtzqddtjtdyztgwscszqflshlnzbcjbhdlyzjyckwtydylbnydsdsycctyszyyebgexhqddwnygyclxtdcystqnygz"
  183 +"ascsszzdzlcclzrqxyywljsbymxshzdembbllyyllytdqyshymrqnkfkbfxnnsbychxbwjyhtqbpbsbwdzylkgzskyghqzjxhxjx"
  184 +"gnljkzlyycdxlfwfghljgjybxblybxqpqgntzplncybxdjyqydymrbeyjyyhkxxstmxrczzjwxyhybmcflyzhqyzfwxdbxbcwzms"
  185 +"lpdmyckfmzklzcyqycclhxfzlydqzpzygyjyzmdxtzfnnyttqtzhgsfcdmlccytzxjcytjmkslpzhysnwllytpzctzccktxdhxxt"
  186 +"qcyfksmqccyyazhtjplylzlyjbjxtfnyljyynrxcylmmnxjsmybcsysslzylljjgyldzdlqhfzzblfndsqkczfyhhgqmjdsxyctt"
  187 +"xnqnjpyybfcjtyyfbnxejdgyqbjrcnfyyqpghyjsyzngrhtknlnndzntsmgklbygbpyszbydjzsstjztsxzbhbscsbzczptqfzlq"
  188 +"flypybbjgszmnxdjmtsyskkbjtxhjcegbsmjyjzcstmljyxrczqscxxqpyzhmkyxxxjcljyrmyygadyskqlnadhrskqxzxztcggz"
  189 +"dlmlwxybwsyctbhjhcfcwzsxwwtgzlxqshnyczjxemplsrcgltnzntlzjcyjgdtclglbllqpjmzpapxyzlaktkdwczzbncctdqqz"
  190 +"qyjgmcdxltgcszlmlhbglkznnwzndxnhlnmkydlgxdtwcfrjerctzhydxykxhwfzcqshknmqqhzhhymjdjskhxzjzbzzxympajnm"
  191 +"ctbxlsxlzynwrtsqgscbptbsgzwyhtlkssswhzzlyytnxjgmjrnsnnnnlskztxgxlsammlbwldqhylakqcqctmycfjbslxclzjcl"
  192 +"xxknbnnzlhjphqplsxsckslnhpsfqcytxjjzljldtzjjzdlydjntptnndskjfsljhylzqqzlbthydgdjfdbyadxdzhzjnthqbykn"
  193 +"xjjqczmlljzkspldsclbblnnlelxjlbjycxjxgcnlcqplzlznjtsljgyzdzpltqcssfdmnycxgbtjdcznbgbqyqjwgkfhtnbyqzq"
  194 +"gbkpbbyzmtjdytblsqmbsxtbnpdxklemyycjynzdtldykzzxtdxhqshygmzsjycctayrzlpwltlkxslzcggexclfxlkjrtlqjaqz"
  195 +"ncmbqdkkcxglczjzxjhptdjjmzqykqsecqzdshhadmlzfmmzbgntjnnlhbyjbrbtmlbyjdzxlcjlpldlpcqdhlhzlycblcxccjad"
  196 +"qlmzmmsshmybhbnkkbhrsxxjmxmdznnpklbbrhgghfchgmnklltsyyycqlcskymyehywxnxqywbawykqldnntndkhqcgdqktgpkx"
  197 +"hcpdhtwnmssyhbwcrwxhjmkmzngwtmlkfghkjyldyycxwhyyclqhkqhtdqkhffldxqwytyydesbpkyrzpjfyyzjceqdzzdlattpb"
  198 +"fjllcxdlmjsdxegwgsjqxcfbssszpdyzcxznyxppzydlyjccpltxlnxyzyrscyyytylwwndsahjsygyhgywwaxtjzdaxysrltdps"
  199 +"syxfnejdxyzhlxlllzhzsjnyqyqyxyjghzgjcyjchzlycdshhsgczyjscllnxzjjyyxnfsmwfpyllyllabmddhwzxjmcxztzpmlq"
  200 +"chsfwzynctlndywlslxhymmylmbwwkyxyaddxylldjpybpwnxjmmmllhafdllaflbnhhbqqjqzjcqjjdjtffkmmmpythygdrjrdd"
  201 +"wrqjxnbysrmzdbyytbjhpymyjtjxaahggdqtmystqxkbtzbkjlxrbyqqhxmjjbdjntgtbxpgbktlgqxjjjcdhxqdwjlwrfmjgwqh"
  202 +"cnrxswgbtgygbwhswdwrfhwytjjxxxjyzyslphyypyyxhydqpxshxyxgskqhywbdddpplcjlhqeewjgsyykdpplfjthkjltcyjhh"
  203 +"jttpltzzcdlyhqkcjqysteeyhkyzyxxyysddjkllpymqyhqgxqhzrhbxpllnqydqhxsxxwgdqbshyllpjjjthyjkyphthyyktyez"
  204 +"yenmdshlzrpqfbnfxzbsftlgxsjbswyysksflxlpplbbblnsfbfyzbsjssylpbbffffsscjdstjsxtryjcyffsyzyzbjtlctsbsd"
  205 +"hrtjjbytcxyyeylycbnebjdsysyhgsjzbxbytfzwgenhhhthjhhxfwgcstbgxklstyymtmbyxjskzscdyjrcythxzfhmymcxlzns"
  206 +"djtxtxrycfyjsbsdyerxhljxbbdeynjghxgckgscymblxjmsznskgxfbnbbthfjyafxwxfbxmyfhdttcxzzpxrsywzdlybbktyqw"
  207 +"qjbzypzjznjpzjlztfysbttslmptzrtdxqsjehbnylndxljsqmlhtxtjecxalzzspktlzkqqyfsyjywpcpqfhjhytqxzkrsgtksq"
  208 +"czlptxcdyyzsslzslxlzmacpcqbzyxhbsxlzdltztjtylzjyytbzypltxjsjxhlbmytxcqrblzssfjzztnjytxmyjhlhpblcyxqj"
  209 +"qqkzzscpzkswalqsplczzjsxgwwwygyatjbbctdkhqhkgtgpbkqyslbxbbckbmllndzstbklggqkqlzbkktfxrmdkbftpzfrtppm"
  210 +"ferqnxgjpzsstlbztpszqzsjdhljqlzbpmsmmsxlqqnhknblrddnhxdkddjcyyljfqgzlgsygmjqjkhbpmxyxlytqwlwjcpbmjxc"
  211 +"yzydrjbhtdjyeqshtmgsfyplwhlzffnynnhxqhpltbqpfbjwjdbygpnxtbfzjgnnntjshxeawtzylltyqbwjpgxghnnkndjtmszs"
  212 +"qynzggnwqtfhclssgmnnnnynzqqxncjdqgzdlfnykljcjllzlmzznnnnsshthxjlzjbbhqjwwycrdhlyqqjbeyfsjhthnrnwjhwp"
  213 +"slmssgzttygrqqwrnlalhmjtqjsmxqbjjzjqzyzkxbjqxbjxshzssfglxmxnxfghkzszggslcnnarjxhnlllmzxelglxydjytlfb"
  214 +"kbpnlyzfbbhptgjkwetzhkjjxzxxglljlstgshjjyqlqzfkcgnndjsszfdbctwwseqfhqjbsaqtgypjlbxbmmywxgslzhglsgnyf"
  215 +"ljbyfdjfngsfmbyzhqffwjsyfyjjphzbyyzffwotjnlmftwlbzgyzqxcdjygzyyryzynyzwegazyhjjlzrthlrmgrjxzclnnnljj"
  216 +"yhtbwjybxxbxjjtjteekhwslnnlbsfazpqqbdlqjjtyyqlyzkdksqjnejzldqcgjqnnjsncmrfqthtejmfctyhypymhydmjncfgy"
  217 +"yxwshctxrljgjzhzcyyyjltkttntmjlzclzzayyoczlrlbszywjytsjyhbyshfjlykjxxtmzyyltxxypslqyjzyzyypnhmymdyyl"
  218 +"blhlsyygqllnjjymsoycbzgdlyxylcqyxtszegxhzglhwbljheyxtwqmakbpqcgyshhegqcmwyywljyjhyyzlljjylhzyhmgsljl"
  219 +"jxcjjyclycjbcpzjzjmmwlcjlnqljjjlxyjmlszljqlycmmgcfmmfpqqmfxlqmcffqmmmmhnznfhhjgtthxkhslnchhyqzxtmmqd"
  220 +"cydyxyqmyqylddcyaytazdcymdydlzfffmmycqcwzzmabtbyctdmndzggdftypcgqyttssffwbdttqssystwnjhjytsxxylbyyhh"
  221 +"whxgzxwznnqzjzjjqjccchykxbzszcnjtllcqxynjnckycynccqnxyewyczdcjycchyjlbtzyycqwlpgpyllgktltlgkgqbgychj"
  222 +"xy";
  223 +
  224 +char pinyinFirstLetter(unsigned short hanzi)
  225 +{
  226 + int index = hanzi - HANZI_START;
  227 + if (index >= 0 && index <= HANZI_COUNT)
  228 + {
  229 + return firstLetterArray[index];
  230 + }
  231 + else
  232 + {
  233 + return hanzi;
  234 + }
  235 +}
0 236 \ No newline at end of file
... ...
YouerLiveVideo/YouerLiveVideo/util/pinyin.h 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +/*
  2 + * pinyin.h
  3 + * Chinese Pinyin First Letter
  4 + *
  5 + * Created by George on 4/21/10.
  6 + * Copyright 2010 RED/SAFI. All rights reserved.
  7 + *
  8 + */
  9 +
  10 +/*
  11 + * // Example
  12 + *
  13 + * #import "pinyin.h"
  14 + *
  15 + * NSString *hanyu = @"中国共产党万岁!";
  16 + * for (int i = 0; i < [hanyu length]; i++)
  17 + * {
  18 + * printf("%c", pinyinFirstLetter([hanyu characterAtIndex:i]));
  19 + * }
  20 + *
  21 + */
  22 +#define ALPHA @"ABCDEFGHIJKLMNOPQRSTUVWXYZ#"
  23 +char pinyinFirstLetter(unsigned short hanzi);
0 24 \ No newline at end of file
... ...
YouerLiveVideo/YouerLiveVideo/util/utiles.swift
... ... @@ -433,4 +433,6 @@ func selectImageFromString(string:String)-&gt;String{
433 433 return "icon"
434 434 }
435 435  
436   -
  436 +func getFirstLetter(str:String)->String{
  437 + return String(format: "%c",pinyinFirstLetter((str as NSString).character(at: 0))).uppercased()
  438 +}
... ...