gpt4 book ai didi

objective-c - NSOutlineView显示三个层次

转载 作者:行者123 更新时间:2023-12-03 17:53:01 25 4
gpt4 key购买 nike

我正在使用 NSOutlineView,我想显示第四个子级别。现在我只能显示三个子级别。

outlineViewController.m

 -(id)init{
self = [super init];
if(self){
_people = [[NSMutableArray alloc]init];

Person *quick = [[Person alloc]initWithName:@"First"];
[quick addChild:[[Person alloc]initWithName:@"Second"]];
[(Person *)[quick.children objectAtIndex:0]addChild:[[Person alloc]initWithName:@"Third"]];

[_people addObject:quick];

}
return self;
}

人.m

-(id)init{
return [self initWithName:@"Name"];
}


-(id)initWithName:(NSString *)name {
self = [super init];
if(self){
_name = [name copy];
_children = [[NSMutableArray alloc]init];

}
return self;
}

-(void)addChild:(Person *)p {
[_children addObject:p];
}

person.h

 @property (copy)NSString *name;
@property(readonly,copy)NSMutableArray *children;
-(id)initWithName:(NSString *)name;
-(void)addChild:(Person *)p;

我得到的输出是这样的。

>First
>Second
Third

我想要这样的输出..

>First
>Second
>Third
>Fourth
Fifth

谢谢。

最佳答案

您要在此处将一个 child 添加到第二个:

[(Person *)[quick.children objectAtIndex:0]addChild:[[Person alloc]initWithName:@"Third"]];

同样,您可以将子项添加到第三个:

[(Person*)[((Person *)[quick.children objectAtIndex:0]).children objectAtIndex:0]addChild:[[Person alloc]initWithName:@"Fourth"]];

然后到第四个:

 [(Person*)[((Person*)[((Person *)[quick.children objectAtIndex:0]).children objectAtIndex:0]).children objectAtIndex:0] addChild:[[Person alloc]initWithName:@"Fifth"]];

或者为了简单起见,首先创建最低级别的对象,然后将其作为子对象添加到其父对象中:

Person *fifth = [[Person alloc]initWithName:@"Fifth"]; 
Person *fourth = [[Person alloc]initWithName:@"Fourth"];
[fourth addChild: fifth];
Person *third = [[Person alloc]initWithName:@"Third"];
[third addChild: fourth];
Person *second = [[Person alloc]initWithName:@"Second"];
[second addChild: third];
Person *quick = [[Person alloc]initWithName:@"First"];
[quick addChild: second];

关于objective-c - NSOutlineView显示三个层次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19945867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com