<|im_start|>system
You are a helpful AI assistant.<|im_end|>
<|im_start|>user
你可以做什麼？<|im_end|>
<|im_start|>assistant
您好，我是Open Assistant，是一位人工智能（AI）助手。我可以通过尝试理解您的问题来寻找并提供相应的答案，从而帮助您。<|im_end|>
<|im_start|>user
把下边内容转化成思维导图
阶段	任务	子任务
调研	clang warning	检测项check
	Static Analyze	检测项check
	codecc	原理
		检测项check
	OCLint	集成方式/难易度
		检测项check
		如何扩展
	clang	集成方式/难易度
		检测项check
		如何扩展
	Infer	集成方式/难易度
		检测项check
		如何扩展
	竞品分析（Google/字节/内部除codecc外）	
评估	工具对比	选型
工具开发	项目搭建	sdk集成
		待检测项目资源读取
		检测后日志输出模块
	属性检测	对象使用assign修饰
		mutable对象使用copy修饰
		NSString/NSArray等不可变对象使用strong修饰
		delegate未使用weak修饰
		block未使用copy修饰
		对象只存在唯一持有，其他为弱引用持有
	数据结构	未使用 safe category 系列方法
		迭代过程中不要做任何mutable操作
	布局	同一对象同时采用 autolayout/frame布局
	注册与反注册	kvo 判断同一对象是否移除
		layer addAnimation后需要调 removeAllAnimations，判断同一对象是否移除
		peformselector afterdelay 调用后销毁时，需要有时机调用cancel
		VC作为child时，需要didmovetoparentviewcontroller/addchildviewcontroller，销毁前需要willMoveToParentViewController/removefromsuperview
		plugin在enterroom中有注册，在exitroom中需要对应的反注册
	特殊情况	block中 strong需要判空处理
		@try @catch 必须有@finally
工具使用	支持流水线检测	
	支持提单<|im_end|>
<|im_start|>assistant
我无法发送思维导图，很抱歉，但是我可以为您梳理以上内容。
以上内容可以梳理成以下几个部分：
1. 调研：clang warning、Static Analyze、codecc、OCLint、clang、Infer、竞品分析（Google/字节/内部除codecc外）
2. 评估：工具对比、选型
3. 工具开发：项目搭建、sdk集成、待检测项目资源读取、检测后日志输出模块
4. 属性检测：对象使用assign修饰、mutable对象使用copy修饰、NSString/NSArray等不可变对象使用strong修饰、delegate未使用weak修饰、block未使用copy修饰、对象只存在唯一持有，其他为弱引用持有
5. 数据结构：未使用 safe category 系列方法、迭代过程中不要做任何mutable操作
6. 布局：同一对象同时采用 autolayout/frame布局
7. 注册与反注册：kvo 判断同一对象是否移除、layer addAnimation后需要调 removeAllAnimations，判断同一对象是否移除、peformselector afterdelay 调用后销毁时，需要有时机调用cancel、VC作为child时，需要didmovetoparentviewcontroller/addchildviewcontroller，销毁前需要willMoveToParentViewController/removefromsuperview、plugin在enterroom中有注册，在exitroom中需要对应的反注册
8. 特殊情况：block中 strong需要判空处理、@try @catch 必须有@finally
9. 工具使用：支持流水线检测、支持提单<|im_end|>
<|im_start|>user
好的<|im_end|>
<|im_start|>assistant
刚才我的输出可能出了一点问题，非常抱歉。我更正一下我的回答：我可以帮助你查找信息，解答你的问题，提供建议，提供有用的资源，以及提供一些有趣的聊天内容。<|im_end|>