zixun / GodEye

Automaticly display Log,Crash,Network,ANR,Leak,CPU,RAM,FPS,NetFlow,Folder and etc with one line of code based on Swift. Just like God opened his eyes
MIT License
3.85k stars 351 forks source link

Log4G 中 WeakLog4GDelegate 的必要性 #19

Closed saitjr closed 7 years ago

saitjr commented 7 years ago

作者,你好 如书中所说,WeakLog4GDelgate 的目的是防止 delegate 数组对元素进行强引用,未解决,所以用 WeakLog4GDelegate 包装一遍,用 weak 修饰以后,再放入数组。

对此,NSPointArray 完全能解决这个问题:

var a: NSPointerArray = NSPointerArray(options: [.weakMemory])

类似容器类型还有:NSHashMapNSHashTable 等。

不知在此使用这些容器类进行解决,是否与原意冲突。

zixun commented 7 years ago

感谢反馈,对NSPointerArray不太了解,如果你有兴趣可否将Log4G改写后提一个PR给我,我最近打算将所有的组件库都先支持下Carthage,所以短期内不太有时间来优化这一块

zixun commented 7 years ago

感谢 @saitjr 提供的PR,后续我会将其他组件库中相似的逻辑一并替换成NSHashTable的实现,在1.2.0发布