|
|
1
5
也许您忘了将实例变量放在类的大括号中,所有实例变量声明都放在大括号中?
另外,您可以向我们展示如何尝试从其他地方访问实例变量的代码吗?正确的语法应该是:
哪里
|
|
2
3
您不能从任何其他类访问IVAR。 您必须声明一个getter/setter方法来更改或查看另一个类中的变量-您真正需要的是属性,这些属性使定义和访问这些getter/setter方法变得更容易。
在实现文件中,您将在@implementation行之后使用@synthesis语句创建getter/setter:
然后,如果创建了类的实例,则可以访问类实例变量,如下所示:
原因是什么@private用于定义子类的可见性(作为该类类型的扩展,它还可以获得由超类定义的所有类局部变量),而不是任何随机类的可见性。 |
|
|
3
3
我通过一个表示我的数据模型的单例,使属性可用于由选项卡栏管理的所有视图。这是高效的,允许所有视图访问数据(以及任何其他应用程序元素)。创建单例非常简单(S.O.上有大量示例)。您只需请求实例并获取所需的属性值。
下面是一个创建单例的框架。关键点是静态实例和您按如下方式进行初始化的事实
单例样板(ApplicationSettings.m):
|
|
|
4
1
标准的Objective-C方法是使用一个返回ivar的类方法 在.h文件中:
虽然如果你需要一个特定的ivar而不是“一个总是一样的ivar”,这需要调整
这种类型的设计被许多可可类使用,例如。
|
|
|
5
0
考虑一个C全局变量。
添加:
在ModelClass.cpp文件中添加:
在您分配并初始化变量之前,该变量的值仍然为nil,您将负责确保它在正确的时间被释放。 |
|
|
6
0
感谢大家就这个话题进行了非常有益的讨论!很明显,这里有几种方法,所以这是一种非常有用的技术组合。
其思想是保持类之间的“低耦合”(1),使代码更加模块化;更好地进行单元测试。
最后,尽管“@public”编译器指令在苹果的
Obj-C
指南(2),我后来在另一份文件中发现了一条迷人的法令,声明
! 引自苹果自己的
最好的 祝你好运!它不允许我发布多个内联超链接,所以我在这里列出它们。显然,它们的前缀都是http://……:O
(1) :en.wikipedia.org/wiki/Coupling(计算机科学)
|
|
|
George Kim · 如何在iOS中模拟特定坐标空间中的触摸? 2 年前 |
|
|
BENG · 协调C++和Objective-C中结构的填充 2 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 3 年前 |
|
|
Community wiki · 在OpenGL中显示YUV 3 年前 |
|
|
YosiFZ · pod更新依赖关系pod 3 年前 |
|
|
Community wiki · 查找iOS日历 3 年前 |