C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 在@interface中声明ivar和在@implementation中放置变量之间的区别大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在@interface中声明ivar与在.m文件中的@implementation中放置变量之间有什么区别?
@interface MyClass : NSObject {
  int num;
}
- (void)doSomething;
@end

@implementation MyClass   
int num2;

- (void)doSomething {
  num = 137;
  num2 = 138;
}
@end

有没有时间想要在@implementation中放置一个变量?

解决方法

使用ivar和在实现中声明变量之间的区别在于实现中的变量位于文件范围和全局.这意味着所有实例(和任何静态方法)将共享同一个变量;即如果您的对象的一个​​实例更改了该变量,它将为所有实例更改它.

文件范围定义它的用例是为静态方法存储内容(直接作用于类而不是类的实例的方法).一个真正常见的用例是Singleton设计模式.您可以在此文件中定义类的静态实例,以便您可以随时确保访问同一实例.您可以提供一个返回此实例的静态方法,以便代码中的任何对象都可以通过直接在您的类上调用方法来访问该对象.

2014年4月17日更新

现在常见的做法是使用Properties.这会为你创建getter和setter,自动使类更具可扩展性(如果你决定改变一个属性的工作方式,也许你想把它改为总是可以动态计算,公共接口该课程不需要改变).

您可以使用private class extensions to declare “private” properties and methods.这可以保护某些属性方法不被外部类访问.

大佬总结

以上是大佬教程为你收集整理的objective-c – 在@interface中声明ivar和在@implementation中放置变量之间的区别全部内容,希望文章能够帮你解决objective-c – 在@interface中声明ivar和在@implementation中放置变量之间的区别所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。