作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 CFTree
。我需要让所有 sibling 都处于相同的深度,例如在下图中,我需要一个包含所有 8 个 CFTreeRef
的数组,位于第 3 个深度。我怎样才能得到它?
最佳答案
按照您的深度编号 - 即从 1 开始,而不是 0:
-(void)allNodesFromTree:(CFTreeRef)node currentDepth:(int)currDepth atDepth:(int)depth nodesFound:(NSMutableArray*)nodes
{
bool atTargetDepth = depth -1 == currDepth;
CFTreeRef curChild = CFTreeGetFirstChild(node);
for (; curChild; curChild = CFTreeGetNextSibling(curChild)) {
if(atTargetDepth) //stop recursion if target depth reached
{
[nodes addObject:(__bridge id)(curChild)];
}
else [self allNodesFromTree:curChild currentDepth:currDepth+1 atDepth:depth nodesFound:nodes];
}
}
为了让事情更简洁一些,你可以将它包装在一个辅助函数中:
-(NSMutableArray*)allNodesFromTree:(CFTreeRef)node atDepth:(int)depth
{
NSMutableArray *nodesArray = [[NSMutableArray alloc]init];
[self allNodesFromTree:node currentDepth:0 atDepth:depth nodesFound:nodesArray];
return nodesArray;
}
然后你就可以打电话了
NSMutableArray *nodes = [self allNodesFromTree:root atDepth:3];
关于ios - 如何让所有 CFTree Siblings 处于相同的深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300630/
我正在尝试制作一个将字符串作为节点保存的 CFTree。我无法理解该类(class)的文档。这是链接:https://developer.apple.com/library/mac/documenta
我想用 CFTree 创建一个像 NSArray 这样的树类。(实际上 NSTree 不存在,所以我正在尝试制作“像树一样的 NSTree”。) 但 CFTree 似乎要求某些类型类。我想制作一个通用
我正在研究 CFTree。我需要让所有 sibling 都处于相同的深度,例如在下图中,我需要一个包含所有 8 个 CFTreeRef 的数组,位于第 3 个深度。我怎样才能得到它? 最佳答案 按照您
我是一名优秀的程序员,十分优秀!