objective-c - OC学习中碰到的一道题目

 资深化妆师May 发布于 2022-10-25 07:51

操作系统中的进程,都不是无缘无故生成的,其都有自己的父进程,每个进程都由自己的父进程启动。现给定进程父子关系描述表,使用(│ ├ └ ─ )字符形象化输出这个父子关系。
类 Process 描述了进程信息,如下:

@interface Process : NSObject
@property (nonatomic) NSString *name;   // 进程名
@property (nonatomic) NSArray *children; // 子进程
@end
@implementation Process
-(instancetype)initWithName:(NSString*)name children:(NSArray *)children {
  if (self = [super init]) {
    _name = name;
    _children = children;
  }
  return self;
}
- (instancetype)initFromDumpString:(NSString*)dump {
   // TODO
}
- (NSString*)dump {
    // TODO
}
@end

1)你的目标是要填充这个名为dump的方法,其返回一个以字符方式输出父子关系的字符串。可以参考下面的示例。
【示例】

int main() {
    Process* xcode = [[Process alloc] initWithName:@"Xcode"
                                          children:@[[[Process alloc] initWithName:@"Simulator" children:nil],
                                                     [[Process alloc] initWithName:@"Debugger" children:nil]]];
    Process* finder = [[Process alloc] initWithName:@"Finder" children:nil];
    Process* qq = [[Process alloc] initWithName:@"QQ" children:nil];
    Process* launcher = [[Process alloc] initWithName:@"Launcher" children:@[xcode, finder, qq]];
     
    NSLog(@"%@", [launcher dump]);
    return 0;
}
/* 输出
Launcher
├─ Xcode
│  ├─ Simulator
│  └─ Debugger
├─ Finder
└─ QQ
*/ 

2)完成1步骤后,你需要填充名为initFromDumpString:的方法,该方法是1步骤的逆操作,其解析一个字符方式的父子关系字符串,返回一个已经初始化好的Person对象。

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有