ios不越狱游戏修改器怎么上树

主题 : iOS技能树,不完整版本,持续增长中.
级别: 精灵王
可可豆: 5262 CB
威望: 5263 点
在线时间: 1983(时)
发自: Web Page
iOS技能树,不完整版本,持续增长中.&&&
大部分是使用过且大概明白的。最早通过blog管理,后来写个人wiki,现在觉得用类似脑图的形式来维护一个技能树比较好,能更系统的让自己明白有哪些不足,哪里该加强。这个是刚刚整理的,有些分类可能不准,以后会慢慢完善ps.不是iOS开发的所有技能,只是我掌握和需要且即将掌握的。[ 此帖被zhangxi_-08-23 12:03重新编辑 ]
描述:v 0.1
图片:u6GaJLr0.png
描述:v 0.2
图片:hCybUK6Y.png
描述:v 0.3
图片:BTAm4YeL.png
http://zhangxi.me
级别: 侠客
可可豆: 21 CB
威望: 291 点
在线时间: 294(时)
发自: Web Page
可能会问你咋个点技能会好一点&&能免费洗点不……
级别: 风云使者
UID: 29025
发帖: 2721
可可豆: 18557 CB
威望: 18599 点
在线时间: 9542(时)
发自: Web Page
天道酬勤!
级别: 精灵王
可可豆: 5262 CB
威望: 5263 点
在线时间: 1983(时)
发自: Web Page
回 1楼(ttleo) 的帖子
噗。。。。。洗点。。。。。。。。。&_&...
http://zhangxi.me
级别: 精灵王
UID: 93168
发帖: 1011
可可豆: 34783 CB
威望: 35675 点
在线时间: 2515(时)
发自: Web Page
哈哈哈&&洗 技能点亮了 .
级别: 侠客
UID: 84955
可可豆: 473 CB
威望: 457 点
在线时间: 274(时)
发自: Web Page
要是真能像魔兽世界里面 点技能点满的话 那就好了 哈哈 还能花钱洗点可惜 小弟 等级不够,只把UIKit全部点满了
级别: 骑士
可可豆: 1979 CB
威望: 1924 点
在线时间: 1792(时)
发自: Web Page
还是暗黑3的技能好,切换都不用啥费用,就是一直只能掌握6个技能
级别: 骑士
UID: 13285
可可豆: 1275 CB
威望: 1328 点
在线时间: 1743(时)
发自: Web Page
级别: 圣骑士
UID: 410335
可可豆: 1684 CB
威望: 1504 点
在线时间: 788(时)
发自: Web Page
这技能树是在哪里?
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版拒绝访问 | www. | 百度云加速
请打开cookies.
此网站 (www.) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(39a9d-ua98).
重新安装浏览器,或使用别的浏览器中国领先的IT技术网站
51CTO旗下网站
详解iOS开发之将XML转换成树 上篇
iOS开发本文章将封装一个简单操作XML转换成树的类方便自己操作:首先通过NSXMLParser从服务端获取XML,它可以一边下载,一边解析,然后转换成树形结构,最后我们可以从树形结构中去取值。
作者:朱祁林来源:博客园| 09:46
iOS开发之将XML转换成树是本文要介绍的内容,开发中由于服务端与客户端是两种不同的平台,而且服务端又是老系统,不具备很好的面向对象的性质,所以导致客户端与服务端只好通过一些制定好的xml进行通信。
在中对XML的解析不像donet这么方便。当然也存在一些很方便的开源类库去调用,但是有些开源的类库显得很笨重。本文章将封装一个简单操作XML转换成树的类方便自己操作:首先通过NSXMLParser从服务端获取XML,它可以一边下载,一边解析,然后转换成树形结构,最后我们可以从树形结构中去取值。
使用NSXMLParser解析XML:
NSXMLParser中主要有三个委托方法来解析XML:
1、parser:didStartElement: 当解析器对象遇到xml的开始标记时,调用这个方法。
2、parser:didEndElement:当解析器对象遇到xml的结束标记时,调用这个方法。
3、parser:foundCharacters:当解析器找到开始标记和结束标记之间的字符时,调用这个方法。
了解了NSXMLParser机制。然后我们来封装解析XML的类:XMLParser。
#import&/CoreFoundation.h&& &#import&&TreeNode.h&&& &@interface&XMLParser&:&NSObject& &{&& &&&&&NSMutableArray&&&&&&*&& &}&& &+&(XMLParser&*)&sharedI&& &-&(TreeNode&*)&parseXMLFromURL:&(NSURL&*)&&& &-&(TreeNode&*)&parseXMLFromData:&(NSData*)&&& &@end&&
shareInstance使用一个单例。
调用parseXMLFromURL方法,需要一个NSURL的参数,返回我们需要的树节点。
调用parseXMLFromData方法,需要一个NSData的参数,返回我们需要的树节点。
在此之前,先定义TreeNode类:
#import&/CoreFoundation.h&& &@interface&TreeNode&:&NSObject& &{&& &&&&&TreeNode&&&&&&&&*&& &&&&&NSMutableArray&&*&& &&&&&NSString&&&&&&&&*&& &&&&&NSString&&&&&&&&*&& &}&& &@property&(nonatomic,&retain)&&&TreeNode&&&&&&&&*&& &@property&(nonatomic,&retain)&&&NSMutableArray&&*&& &@property&(nonatomic,&retain)&&&NSString&&&&&&&&*&& &@property&(nonatomic,&retain)&&&NSString&&&&&&&&*&& &@property&(nonatomic,&readonly)&BOOL&&&&&&&&&&&&isL&& &@property&(nonatomic,&readonly)&BOOL&&&&&&&&&&&&hasLeafV&& &@property&(nonatomic,&readonly)&NSArray&&&&&&&&&*&& &@property&(nonatomic,&readonly)&NSArray&&&&&&&&&*allK&& &@property&(nonatomic,&readonly)&NSArray&&&&&&&&&*uniqK&& &@property&(nonatomic,&readonly)&NSArray&&&&&&&&&*uniqAllK&& &@property&(nonatomic,&readonly)&NSArray&&&&&&&&&*&& &@property&(nonatomic,&readonly)&NSArray&&&&&&&&&*allL&& &@property&(nonatomic,&readonly)&NSString&&&&&&&&*&& &+&(TreeNode&*)&treeN&& &-&(NSString&*)&&& &-&(void)&&& &//&Leaf&Utils&& &-&(BOOL)&isL&& &-&(BOOL)&hasLeafV&& &-&(NSArray&*)&&& &-&(NSArray&*)&allL&& &//&Key&Utils&& &-&(NSArray&*)&&&& &-&(NSArray&*)&allK&&& &-&(NSArray&*)&uniqK&& &-&(NSArray&*)&uniqAllK&& &//&Search&Utils&& &-&(TreeNode&*)&objectForKey:&(NSString&*)&aK&& &-&(NSString&*)&leafForKey:&(NSString&*)&aK&& &-&(NSMutableArray&*)&objectsForKey:&(NSString&*)&aK&& &-&(NSMutableArray&*)&leavesForKey:&(NSString&*)&aK&& &-&(TreeNode&*)&objectForKeys:&(NSArray&*)&&& &-&(NSString&*)&leafForKeys:&(NSArray&*)&&& &&//&Convert&Utils&& &-&(NSMutableDictionary&*)&dictionaryForC&& &@end&&
TreeNode 实现:
#import&&TreeNode.h&&& &//&String&stripper&utility&macro&& &#define&STRIP(X)&&&&[X&stringByTrimmingCharactersInSet:[NSCharacterSet&whitespaceAndNewlineCharacterSet]]&&& &@implementation&TreeNode&& &@synthesize&&& &@synthesize&&& &@synthesize&&& &@synthesize&&& &#pragma&mark&Create&and&Initialize&TreeNodes&& &-&(TreeNode&*)&init&& &{&& &&&&&if&(self&=&[super&init])&&& &&&&&{&& &&&&&&&&&self.key&=&nil;&& &&&&&&&&&self.leafvalue&=&nil;&& &&&&&&&&&self.parent&=&nil;&& &&&&&&&&&self.children&=&nil;&& &&&&&}&& &&&&&return&&& &}&& &+&(TreeNode&*)&treeNode&& &{&& &&&&&return&[[[self&alloc]&init]&autorelease];&& &}&& &#pragma&mark&TreeNode&type&routines&& &-&(BOOL)&isLeaf&& &{&& &&&&&return&(self.children.count&==&0);&& &}&& &-&(BOOL)&hasLeafValue&& &{&& &&&&&return&(self.leafvalue&!=&nil);&& &}&& &#pragma&mark&TreeNode&data&recovery&routines&& &//&Return&an&array&of&child&keys.&No&recursion&& &-&(NSArray&*)&keys&& &{&& &&&&&NSMutableArray&*results&=&[NSMutableArray&array];&& &&&&&for&(TreeNode&*node&in&self.children)&[results&addObject:node.key];&& &&&&&return&&& &}&& &//&Return&an&array&of&child&keys&with&depth-first&recursion.&& &-&(NSArray&*)&allKeys&& &{&& &&&&&NSMutableArray&*results&=&[NSMutableArray&array];&& &&&&&for&(TreeNode&*node&in&self.children)&&& &&&&&{&& &&&&&&&&&[results&addObject:node.key];&& &&&&&&&&&[results&addObjectsFromArray:node.allKeys];&& &&&&&}&& &&&&&return&&& &}&& &-&(NSArray&*)&uniqArray:&(NSArray&*)&anArray&& &{&& &&&&&NSMutableArray&*array&=&[NSMutableArray&array];&& &&&&&for&(id&object&in&[anArray&sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)])&& &&&&&&&&&if&(![[array&lastObject]&isEqualToString:object])&[array&addObject:object];&& &&&&return&&& &}&& &//&Return&a&sorted,&uniq&array&of&child&keys.&No&recursion&& &&-&(NSArray&*)&uniqKeys&& &{&& &&&&&return&[self&uniqArray:[self&keys]];&& &}&& &//&Return&a&sorted,&uniq&array&of&child&keys.&With&depth-first&recursion&& &&-&(NSArray&*)&uniqAllKeys&& &{&& &&&&&return&[self&uniqArray:[self&allKeys]];&& &}&& &//&Return&an&array&of&child&leaves.&No&recursion&& &&-&(NSArray&*)&leaves&& &{&& &&&&&NSMutableArray&*results&=&[NSMutableArray&array];&& &&&&&for&(TreeNode&*node&in&self.children)&if&(node.leafvalue)&[results&addObject:node.leafvalue];&& &&&&&return&&& &}&& &//&Return&an&array&of&child&leaves&with&depth-first&recursion.&& &&-&(NSArray&*)&allLeaves&& &{&& &&&&&NSMutableArray&*results&=&[NSMutableArray&array];&& &&&&&for&(TreeNode&*node&in&self.children)&&& &&&&&{&& &&&&&&&&&if&(node.leafvalue)&[results&addObject:node.leafvalue];&& &&&&&&&&&[results&addObjectsFromArray:node.allLeaves];&& &&&&&}&& &&&&&return&&& &}&& &#pragma&mark&TreeNode&search&and&retrieve&routines&& &//&Return&the&first&child&that&matches&the&key,&searching&recursively&breadth&first&& &-&(TreeNode&*)&objectForKey:&(NSString&*)&aKey&& &{&& &&&&&TreeNode&*result&=&nil;&& &&&&&for&(TreeNode&*node&in&self.children)&&& &&&&&&&&&if&([node.key&isEqualToString:&aKey])&& &&&&&&&&&{&& &&&&&&&&&&&&result&=&node;&& &&&&&&&&&&&&&&& &&&&&&&&&}&& &&&&&if&(result)&return&&& &&&&&for&(TreeNode&*node&in&self.children)&& &&&&&{&& &&&&&&&&&result&=&[node&objectForKey:aKey];&& &&&&&&&&&if&(result)&&& &&&&&}&& &&&&&return&&& &}&& &//&Return&the&first&leaf&whose&key&is&a&match,&searching&recursively&breadth&first&& &&-&(NSString&*)&leafForKey:&(NSString&*)&aKey&& &{&& &&&&&TreeNode&*node&=&[self&objectForKey:aKey];&& &&&&&return&node.&& &}&& &//&Return&all&children&that&match&the&key,&including&recursive&depth&first&search.&& &&-&(NSMutableArray&*)&objectsForKey:&(NSString&*)&aKey&& &{&& &&&&&NSMutableArray&*result&=&[NSMutableArray&array];&& &&&&&for&(TreeNode&*node&in&self.children)&&& &&&&&{&& &&&&&&&&&if&([node.key&isEqualToString:&aKey])&[result&addObject:node];&& &&&&&&&&&[result&addObjectsFromArray:[node&objectsForKey:aKey]];&& &&&&&}&& &&&&&return&&& &}&& &//&Return&all&leaves&that&match&the&key,&including&recursive&depth&first&search.&& &&-&(NSMutableArray&*)&leavesForKey:&(NSString&*)&aKey&& &{&& &&&&&NSMutableArray&*result&=&[NSMutableArray&array];&& &&&&&for&(TreeNode&*node&in&[self&objectsForKey:aKey])&&& &&&&&&&&&if&(node.leafvalue)&& &&&&&&&&&&&&&[result&addObject:node.leafvalue];&& &&&&&return&&& &}&& &//&Follow&a&key&path&that&matches&each&first&found&branch,&returning&object&& &&-&(TreeNode&*)&objectForKeys:&(NSArray&*)&keys&& &&{&& &&&&&if&([keys&count]&==&0)&return&&& &&&&&NSMutableArray&*nextArray&=&[NSMutableArray&arrayWithArray:keys];&& &&&&&[nextArray&removeObjectAtIndex:0];&& &&&&&for&(TreeNode&*node&in&self.children)&& &&&&&{&& &&&&&&&&&if&([node.key&isEqualToString:[keys&objectAtIndex:0]])&& &&&&&&&&&&&&&return&[node&objectForKeys:nextArray];&& &&&&&}&& &&&&&return&&& &}&& &//&Follow&a&key&path&that&matches&each&first&found&branch,&returning&leaf&& &&-&(NSString&*)&leafForKeys:&(NSArray&*)&keys&& &{&& &&&&&TreeNode&*node&=&[self&objectForKeys:keys];&& &&&&return&node.&& &}&& &#pragma&mark&output&utilities&& &//&Print&out&the&tree&& &&-&(void)&dumpAtIndent:&(int)&indent&into:(NSMutableString&*)&outstring&& &{&& &&&&&for&(int&i&=&0;&i&&;&i++)&[outstring&appendString:@&--&];&& &&&&&[outstring&appendFormat:@&[%2d]&Key:&%@&&,&indent,&key];&& &&&&&if&(self.leafvalue)&[outstring&appendFormat:@&(%@)&,&STRIP(self.leafvalue)];&& &&&&&[outstring&appendString:@&\n&];&& &&&&&for&(TreeNode&*node&in&self.children)&[node&dumpAtIndent:indent&+&1&into:&outstring];&& &}&& &-&(NSString&*)&dump&& &{&& &&&&&NSMutableString&*outstring&=&[[NSMutableString&alloc]&init];&& &&&&&[self&dumpAtIndent:0&into:outstring];&& &&&&&return&[outstring&autorelease];&& &}&& &#pragma&mark&conversion&utilities&& &//&When&you're&sure&you're&the&parent&of&all&leaves,&transform&to&a&dictionary&& &&-&(NSMutableDictionary&*)&dictionaryForChildren&& &{&& &&&&&NSMutableDictionary&*results&=&[NSMutableDictionary&dictionary];&& &&&&&for&(TreeNode&*node&in&self.children)&& &&&&&&&&&if&(node.hasLeafValue)&[results&setObject:node.leafvalue&forKey:node.key];&& &&&&&return&&& &}&& &#pragma&mark&invocation&forwarding&& &//&Invocation&Forwarding&lets&node&act&like&array&& &&-&(id)forwardingTargetForSelector:(SEL)sel&&& &{&&& &&&&&if&([self.children&respondsToSelector:sel])&return&self.&&& &&&&&eturn&&& &}&& &//&Extend&selector&compliance&& &-&(BOOL)respondsToSelector:(SEL)aSelector&& &&{&& &&&&&if&(&[super&respondsToSelector:aSelector]&)&return&YES;&& &&&&&if&([self.children&respondsToSelector:aSelector])&return&YES;&& &&&&&return&NO;&& &}&& &//&Allow&posing&as&NSArray&class&for&children&& &-&(BOOL)isKindOfClass:(Class)aClass&& &&{&& &&&&&if&(aClass&==&[TreeNode&class])&return&YES;&& &&&&&if&([super&isKindOfClass:aClass])&return&YES;&& &&&&&if&([self.children&isKindOfClass:aClass])&return&YES;&& &&&&&return&NO;&& &}&& &#pragma&mark&cleanup&& &&-&(void)&teardown&& &{&& &&&&&for&(TreeNode&*node&in&[[self.children&copy]&autorelease])&[node&teardown];&& &&&&&[self.parent.children&removeObject:self];&& &&&&&self.parent&=&nil;&& &}&& &&-&(void)&dealloc&& &{&& &&&&&self.parent&=&nil;&& &&&&&self.children&=&nil;&& &&&&&self.key&=&nil;&& &&&&&self.leafvalue&=&nil;&& &&&&[super&dealloc];&& &}&& &@end&
从上面的代码可以看出,定义了很多方便的方法来获取数据。
1、teardown:清除所有节点
2、isLeaf:判断是否是叶子节点
3、hasLeafValue:判断节点是否有值
4、- (NSArray *) leaves:返回节点的所有一级子节点值
5、- (NSArray *) allLeaves:返回节点的所有子节点的值
6、 返回节点所有一级子节点名称。
7、 allK 返回节点所有子节点名称。
8、 uniqK返回节点一级子节点名称,不重复。
9、uniqAllK返回节点子节点名称,不重复。
10、- (TreeNode *) objectForKey:根据节点名称查询节点
11、- (NSString *) leafForKey: (NSString *) aKey:根据节点名称查询出节点的值
12、- (NSMutableArray *) objectsForKey: (NSString *) aK根据节点名称查询出所以满足条件的节点
13、- (NSMutableArray *) leavesForKey: (NSString *) aK根据节点名称查询出所以满足条件的节点的值
14、- (TreeNode *) objectForKeys: (NSArray *):根据节点名称路径查询出第一个满足条件的节点。
15、- (NSString *) leafForKeys: (NSArray *) keys 根据节点名称路径查询出第一个满足条件的节点的值。
16、- (NSMutableDictionary *) dictionaryForChildren:将树转换成dictionary树定义好了,下面实现XMLParser类:
#import&&XMLParser.h&&& &@implementation&XMLParser&& &static&XMLParser&*sharedInstance&=&nil;&& &//&Use&just&one&parser&instance&at&any&time&& &+(XMLParser&*)&sharedInstance&&& &{&& &&&&&if(!sharedInstance)&{&& &&&&&&&&&sharedInstance&=&[[self&alloc]&init];&& &&&&&}&& &&&&&return&sharedI&& &}&& &//&Parser&returns&the&tree&root.&You&may&have&to&go&down&one&node&to&the&real&results&& &-&(TreeNode&*)&parse:&(NSXMLParser&*)&parser&& &{&& &&&&stack&=&[NSMutableArray&array];&& &&&&&TreeNode&*root&=&[TreeNode&treeNode];&& &&&&&root.parent&=&nil;&& &&&&&root.leafvalue&=&nil;&& &&&&&root.children&=&[NSMutableArray&array];&& &&&&&[stack&addObject:root];&& &&&&&[parser&setDelegate:self];&& &&&&&[parser&parse];&& &&&&&[parser&release];&& &&&&&//&pop&down&to&real&root&& &&&&&TreeNode&*realroot&=&[[root&children]&lastObject];&& &&&&&root.children&=&nil;&& &&&&&root.parent&=&nil;&& &&&&&root.leafvalue&=&nil;&& &&&&&root.key&=&nil;&& &&&&&realroot.parent&=&nil;&& &&&&&return&&& &}&& &&-&(TreeNode&*)parseXMLFromURL:&(NSURL&*)&url&& &{&&&&& &&&&&TreeNode&*&& &&&&&NSAutoreleasePool&*&pool&=&[[NSAutoreleasePool&alloc]&init];&& &&&&&NSXMLParser&*parser&=&[[NSXMLParser&alloc]&initWithContentsOfURL:url];&& &&&&&results&=&[self&parse:parser];&& &&&&&[pool&drain];&& &&&&&return&&& &}&& &-&(TreeNode&*)parseXMLFromData:&(NSData&*)&data&& &{&&&&& &&&&&TreeNode&*&& &&&&&NSAutoreleasePool&*&pool&=&[[NSAutoreleasePool&alloc]&init];&& &&&&&NSXMLParser&*parser&=&[[NSXMLParser&alloc]&initWithData:data];&& &&&&&results&=&[self&parse:parser];&& &&&&&[pool&drain];&& &&&&&return&&& &}&& &//&Descend&to&a&new&element&& &&-&(void)parser:(NSXMLParser&*)parser&didStartElement:(NSString&*)elementName&namespaceURI:(NSString&*)
namespaceURI&qualifiedName:(NSString&*)qName&attributes:(NSDictionary&*)attributeDict&& &{&& &&&&&if&(qName)&elementName&=&qName;&& &&&&&TreeNode&*leaf&=&[TreeNode&treeNode];&& &&&&&leaf.parent&=&[stack&lastObject];&& &&&&&[(NSMutableArray&*)[[stack&lastObject]&children]&addObject:leaf];&& &&&&&leaf.key&=&[NSString&stringWithString:elementName];&& &&&&&leaf.leafvalue&=&nil;&& &&&&&leaf.children&=&[NSMutableArray&array];&& &&&&&[stack&addObject:leaf];&& &}&& &//&Pop&after&finishing&element&& &&-&(void)parser:(NSXMLParser&*)parser&didEndElement:(NSString&*)elementName&namespaceURI:(NSString&*)namespaceURI&qualifiedName:(NSString&*)qName&& &{&& &&&&&[stack&removeLastObject];&& &}&& &//&Reached&a&leaf&& &&-&(void)parser:(NSXMLParser&*)parser&foundCharacters:(NSString&*)string&& &{&& &&&&&if&(![[stack&lastObject]&leafvalue])&& &&&&&{&& &&&&&&&&&[[stack&lastObject]&setLeafvalue:[NSString&stringWithString:string]];&& &&&&&&&&&&& &&&&&}&& &&&&&[[stack&lastObject]&setLeafvalue:[NSString&stringWithFormat:@&%@%@&,&[[stack&lastObject]&leafvalue],&string]];&& &}&& &@end&&
使用这两个类:
下面看下我们如何使用这个类:
在iis中放下面这个xml:
&version=&1.0&&encoding=&UTF-8&&& &&& &True&& &恭喜你登录成功&& &&12:20&& &&& &1&& &1&& &0&& && &&&
使用下面代码获取web服务器上的xml,并将xml转换成树:
NSURL&*&url&=&[[NSURL&alloc]&initWithString:@&http://10.5.23.117:4444/Login.xml&];&& &&&TreeNode&*node&=&[parser&parseXMLFromURL:url];&&
获取xml中的登录结果:
view&sourceprint?NSString&*&result&=&&[node&leafForKey:@&LoginResult&];&&
类似xpath去取值:
NSArray&*path&=[[NSArray&alloc]initWithObjects:@&Right&,@&A&,nil];&&&& &NSString&*&result&=&&[node&leafForKeys:path];&&&
将xml显示在tableview上:
&@implementation&TreeBrowserController&& &@synthesize&&& &//&Each&instance&of&this&controller&has&a&separate&root,&as&& &//&descending&through&the&tree&produces&new&roots.&& &&-&(id)&initWithRoot:(TreeNode&*)&newRoot&& &{&& &&&&&if&(self&=&[super&init])&& &&&&&{&& &&&&&&&&&self.root&=&newRoot;&& &&&&&&&&&NSString&*s&=[newRoot&dump];&& &&&&&&&&&if&(newRoot.key)&self.title&=&newRoot.&& &&&&&}&& &&&&&return&&& &}&& &-&(id)initWithStyle:(UITableViewStyle)style&& &{&& &&&&&self&=&[super&initWithStyle:style];&& &&&&&if&(self)&{&& &&&&&&&&&//&Custom&initialization&& &&&&&}&& &&&&&return&&& &}&&
//&The&number&of&rows&equals&the&number&of&children&for&a&node&& &&-&(NSInteger)tableView:(UITableView&*)tableView&& &&numberOfRowsInSection:(NSInteger)section&& &{&& &&&&&return&[self.root.children&count];&& &}&& &//&Color&code&the&cells&that&can&be&navigated&through&& &&-&(UITableViewCell&*)tableView:(UITableView&*)tableView&& &&&&&&&&&cellForRowAtIndexPath:(NSIndexPath&*)indexPath&& &{&& &&&&&UITableViewCell&*cell&=&[tableView&&&&&&&&&&&&&&&&&&&&&&dequeueReusableCellWithIdentifier:@&generic&];&& &&&&&if&(!cell)&cell&=&[[[UITableViewCell&alloc]&& &&&&&&&&&&&&&&&&&&&&&&&&&initWithFrame:CGRectZero&reuseIdentifier:@&generic&]&& &&&&&&&&&&&&&&&&&&&&&&&&autorelease];&& &&&&&TreeNode&*child&=&[[self.root&children]&& &&&&&&&&&&&&&&&&&&&&&&&&objectAtIndex:[indexPath&row]];&& &&&&&//&Set&text&& &&&&&if&(child.hasLeafValue)&& &&&&&&&&&cell.textLabel.text&=&[NSString&stringWithFormat:@&%@:%@&,&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&child.key,&child.leafvalue];&& &&&&&else &&&&&&&&&cell.textLabel.text&=&child.&& &&&&&//&Set&color&& &&&&&if&(child.isLeaf)&& &&&&&&&&&cell.textLabel.textColor&=&[UIColor&darkGrayColor];&& &&&&&else& &&&&&&&&&cell.textLabel.textColor&=&[UIColor&blackColor];&& &&&&&return&&& &}&& &//&On&selection,&either&push&a&new&controller&or&show&the&leaf&value&& &&-&(void)tableView:(UITableView&*)tableView&& &didSelectRowAtIndexPath:(NSIndexPath&*)indexPath&& &&{&& &&&&&TreeNode&*child&=&& &&&&&[self.root.children&objectAtIndex:[indexPath&row]];&& &&&&&if&(child.isLeaf)&& &&&&&{&&&&&&&&&& &&&&&&&&&&& &&&&&}&& &&&&&TreeBrowserController&*tbc&=&[[[TreeBrowserController&alloc]&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&initWithRoot:child]&autorelease];&& &&&&&[self.navigationController&pushViewController:tbc&animated:YES];&& &}&& &//&These&controllers&are&ephemeral&and&need&dealloc&& &&-&(void)&dealloc&& &{&& &&&&&self.root&=&nil;&& &&&&&[super&dealloc];&& &}& &@end&&
总结:详解iOS开发之将XML转换成树的内容介绍完了,本文通过封装两个类库,可以从web上很高效获取xml,将xml转换成树形结构,可以很方便的对树进行操作。那么希望本文对你有所帮助!请继续阅读。
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条头条外电头条
24H热文一周话题本月最赞
讲师:152202人学习过
讲师:270250人学习过
讲师:12593人学习过
精选博文论坛热帖下载排行
在我的第一本书――《3D游戏开发大全》中,我们曾经对3D游戏开发完成了一次犹如探索原始丛林般的旅程:首先,我们对3D游戏产业进行了初步了...
订阅51CTO邮刊当前位置: >
树林中的一天
类型:其它游戏
人气:52188
版本:1.0.0
语言: 英文
系统: iOS 5.1.1 或更高版本
大小: 167.0M
下载量:10242
  小红帽的故事大家在小时候应该都听说过,《树林中的一天 A Day in the
Woods》讲述的就是小红帽去看祖母,要在树林中走一天。游戏以小红帽为背景展开,玩家需要帮助在森林中迷路的小红帽顺利到达祖母的房子。游戏场景中土地被分为一个个六角形,隐藏着熊、蜘蛛、大灰狼等野兽,游戏过程就是避免潜伏的各种危险,玩家需要帮助小红帽穿过60道关卡,如何规划好路线则成了游戏最大的难点,喜欢的玩家赶紧开动脑筋帮助小红帽顺利到达祖母家吧!
  小红帽大家小时候都听过吧,今天琵琶网小编King要介绍的就是一款跟小红帽有关的手游叫做《树林中的一天》。  小红帽的故事大家在小时候应该都听说过,《树林中的一天ADayintheWoods》讲述的就是小红帽去看祖母...... [查看全文]
(已有0条评论)
你还可以输入200字
Copyright ?
Copyright @
琵琶网 All Rights Reserved厦门市舜邦网络科技有限公司
闽网文【-031号& 闽ICP备号-2&ICP许可证:闽B2-}

我要回帖

更多关于 ios10不越狱替换存档 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信