gpt4 book ai didi

iphone - UIView ivar 与标记本地 UIView var

转载 作者:太空狗 更新时间:2023-10-30 03:57:22 24 4
gpt4 key购买 nike

场景 1:对于 UIViewController,(1) 为 UIView 创建一个 ivar 是否更好,我可以在 loadView 之外的 1 或 2 个函数中再次访问它?或者,(2) 我应该只在 loadView 中标记它,然后使用 - (UIView *)viewWithTag:(NSInteger)tag 在其他函数中再次访问它吗?我猜选项 1 增加了指针大小的内存,所以 32/64 位,并创建访问器方法(假设我声明 @property & @synthesize),然后要求在dealloc中释放ivar,并在viewDidUnload中将其设置为nil...并且选项2节省内存,有更少的设置代码,但会花费一些处理时间和一些额外的代码来通过其标签查找 View 。我说的对吗?

在这种情况下,感觉最好使用 ivar,但我不确定。

场景 2:具有 5 个 subview 的 UIView 的自定义子类怎么样?请记住,我将在给定时间在内存中拥有大约 30 个此自定义子类的实例(它们将是 tableViewCells 的 subview ),我应该为 subview 使用 5 个 ivars,还是我应该标记它们吗?

在这种情况下,我认为通过标记它们节省的内存值得使用 - (UIView *)viewWithTag:(NSInteger)tag 搜索它们的小性能损失。

想法?

谢谢!

马特

最佳答案

考虑到内存使用方面的差异可以忽略不计(除非您将拥有 100 个这样的 View ,在这种情况下您可能想研究如何重用其中的一些 View ),您可能应该考虑什么会使您的代码更具可读性和可维护性。我个人认为使用 ivar 会更具可读性,但对于您的特定情况,使用标签也可能更具可读性。

在编写代码时,我总是尽量考虑一两年后将要阅读代码的人。这个人可能是我,也可能是其他人,但不管怎样,我知道那个人会喜欢可读的代码。他们不太可能感谢我在至少具有 128 MB RAM 的设备上节省了 1k 内存。

关于iphone - UIView ivar 与标记本地 UIView var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3800553/

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