ios - 从另一个访问一个类的变量的值——objective-c
<p><p>这可能是一个愚蠢的问题,但我很难尝试解决它。问题是一个类实现了一个计数器,并在它的最后调用一个由另一个类控制的 View 。我想做的是从第二个访问第一个类的计数器的值。我将计数器定义为一个属性并尝试从其他类访问它,但我总是将其值设为 0。有人可以帮我吗?</p>
<p>谢谢。</p>
<p>我拥有的是这样的:</p>
<p><em>Class1.h</em></p>
<pre><code>@interface Class1 : CCLayerColor <UIAlertViewDelegate>
{
int movesCounter;
}
@property int movesCounter;
@end
</code></pre>
<p><em>Class1.m</em></p>
<pre><code>@implementation Class1
@synthesize movesCounter;
//At this point the counter gets incremented and NSLogging its value correctly
@end
</code></pre>
<p><em>Class2.m</em> </p>
<pre><code>#import Class1.h
@implementation GameOverLayer
-(id) init
{
if( (self=))
{
Class1 *theClass1 = [init];
NSString *message = ;
UIAlertView *alert = [initWithTitle:@"Alert" message:message delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
;
;
}
}
</code></pre>
<p>我做错了什么?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您的问题是您在 Class2 的 init 方法中创建了 Class1 的 <strong>new</strong> 实例:</p>
<pre><code>Class1 *theClass1 = [ init];
</code></pre>
<p>这个新实例是除了你已经成功递增的 int 的实例之外,因为它是一个新的内存片,它的 moveCounter 值仍然是 0。你真正想要的是一个指向特定副本的指针您一直在使用的 Class1 - 不需要或不需要 alloc/init。尝试在 Class2 中创建一个可以保存指向 Class1 的指针的属性:</p>
<pre><code>#import "Class1.h"
@interface Class2 : NSObject {
Class1 *myPointerToClass1;
}
@property (nonatomic, retain) Class1 *myPointerToClass1;
</code></pre>
<p>当然还有 Class2 的 .m 中的 @synthesize myPointerToClass1。现在 Class2 已准备好保存指向 Class1 的指针,您只需填充它即可。在 Class1 中,在 alloc 和 init 是 Class2 实例的代码之后,使用如下代码:</p>
<pre><code>myClass2.myPointerToClass1 = self;
</code></pre>
<p>只是为了确保我没有忘记我使用您上面的代码所做的所有这些事情,并且一切对我来说都很好。
</p><hr/>
<strong>编辑:原始答案从这里开始,但现在无关紧要.....</strong>
您提到已将计数器定义为属性,但您是否还在实现 (.m) 文件中合成了实例变量?<p></p>
<pre><code>@synthesize myCounter;
</code></pre>
<p>这将自动为您创建 setter 和 getter 方法。另外,您是否验证了该值是否正在增加,可能是在 ViewController 中使用 NSLog 语句?</p>
<pre><code>NSLog(@"myCounter is currently equal to %d", myCounter); // assuming an int
</code></pre>
<p>如果涵盖了这些基础知识,也许您可以编辑您的问题以包含代码,向我们展示更多关于行为不端的类如何首先获取指向变量的指针。</p></p>
<p style="font-size: 20px;">关于ios - 从另一个访问一个类的变量的值——objective-c,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/9371125/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/9371125/
</a>
</p>
页:
[1]