关于OC中单例模式initialize中 static 是否不要

_小北_ 2017-02-23 11:31:46
OC中单例模式initialize中 static 修饰的全局变量,本来这个变量就是在initialize方法中赋的值,这个方法只会调用一次,为什么还要用static修饰;还有在uitableview中cellid 也是一个全局属性,为什么很多人都要用static修饰,使用没有找到合理的解释,希望知道大家的理解是什么样的
...全文
259 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bannings 2017-03-01
  • 打赏
  • 举报
回复
变量如果是声明在任何代码块之外,就是全局变量,全局变量和静态变量一样都是只分配一次内存。如果你在 .m 里定义一个全局变量,这个变量的链接属性是 external,此时你在另一个文件里定义相同名称的全局变量会导致重定义。 static 用于全局变量时,会修改变量的链接属性为 internal,多个文件相同名称的全局变量只能在声明它们的源文件中访问。
Bannings 2017-03-01
  • 打赏
  • 举报
回复
引用 1 楼 Arodung 的回复:
防止别人去修改,更安全
你理解的不对
qq_36130296 2017-03-01
  • 打赏
  • 举报
回复
厉害了~~~
  • 打赏
  • 举报
回复
引用 4 楼 zhangao0086 的回复:
变量如果是声明在任何代码块之外,就是全局变量,全局变量和静态变量一样都是只分配一次内存。如果你在 .m 里定义一个全局变量,这个变量的链接属性是 external,此时你在另一个文件里定义相同名称的全局变量会导致重定义。 static 用于全局变量时,会修改变量的链接属性为 internal,多个文件相同名称的全局变量只能在声明它们的源文件中访问。
qq_107356709 2017-02-28
  • 打赏
  • 举报
回复
tableview只是为了方便 注册cell和代理里面的dequ方法同一个identifier 单例那个是静态变量 只会申请一次内存空间 不会反复重新加载内容 initialize 这个方法是类被初始化的时候调用的方法,而且只会调用一次 在封装工具类的时候 我会写一个staic Nsmutabledictionary *dic 作为全局变量保存相关属性 在initialize中初始化 在我的方法中 就可以调用 很方便
AirZilong 2017-02-24
  • 打赏
  • 举报
回复
防止别人去修改,更安全

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧