全局 int 变量目标 c
我想在一个类中声明一个 static int 变量,并可以在其他每个类中访问它。最好的方法是什么?
I want to declare a static int variable in one class and have access to it in every other class. What is the best way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Objective C 中没有静态类变量。您可以在类的实现文件中将其创建为文件范围静态变量,并在类中提供静态 setter 和 getter 方法。
或者,您可以将其设为老式全局变量,并在 .h 文件中使用
extern
声明。前一种方法更灵活——您可以在setter方法中添加额外的检查,例如,后者更少打字,并且避免了方法调用开销。There are no static class variables in Objective C. You can create it as a file-scope static variable in the class' implementation file and provide static setter and getter methods in the class.
Or you can make it an old-school global, with an
extern
declaration in the .h file. The former approach is more flexible - you can add extra checks in the setter method, for example, the latter is less typing, and avoids the method call overhead.您可以尝试以下一些方法
在appdelegate中声明全局变量
创建单例类并放置全局变量
那里。
使用appdelegate
appdelegate也是一种单例类
函数定义:
函数调用:
使用自己的单例类
类只能存在一个实例。
单例声明示例:
单例实现示例:
方法 1: 使用 GCD
方法 2: 不使用 GCD
函数定义:
函数调用:
NSString 到 int:
据我所知,以一种方式执行此操作不存在性能问题。
我总是更喜欢单例类而不是appdelegate,因为代码不会混乱,而且我认为过度使用appdelegate作为臭代码。
Here are some ways you could try
Declaring the global variables in appdelegate
Creating a singleton class and putting the global variables
there.
Using appdelegate
appdelegate is also a kind of singleton class
Function definition:
Function Calling:
Using your own singleton class
Only one instance of class can exist.
Sample singleton declaration:
Sample singleton implementation:
Approach 1: Using GCD
Approach 2: Without using GCD
Function definition:
Function Calling:
NSString to int:
As far as I’m aware, there are no performance issues with doing it one way over another.
I always prefer singleton class rather than appdelegate because the code will be clutter free and I consider overusing appdelegate as smelly code.
这打破了一些模式,我不会使用它。
无论如何,如果您在应用程序委托中声明一个属性,那么您可以调用:
[[NSApp delegate] myVar]
任何地方。您究竟打算如何使用这个变量?
That breaks some patterns, I'd not use it.
Anyway, if you declare a property in your app delegate then you can call:
[[NSApp delegate] myVar]
anywhere.How exactly do you intent to use this variable?
如何使用单例类来保存任何类都可以访问的所有变量,并且范围是应用程序的整个运行时。
查看此链接
How about using a singleton class to save all the variables which any class can access and scope is the entire runtime of the app.
Check out this link