无法停止在另一个班级中设置UIActivity Indicator View的动画

时间:2011-01-18 06:47:55

标签: iphone cocoa-touch

我正在使用名为process的UIActivity Indicator View。

我在main.h类中声明属性,并在main .m

中进行合成

我用它来表示用户通过点击按钮连接网页。

点按钮中的[process startAnimating]指示符。

但我编写代码来连接另一个名为webservices的类中的Web服务,现在我需要停止在此Web服务中设置该流程的动画。

为此我正在webservices.m中编写代码

main *obj = [[main alloc]init];
[obj.process stopAnimating];

但它不起作用。

任何人都可以帮助我。

提前感谢你。

2 个答案:

答案 0 :(得分:0)

{1}}属性是在您的第一个类(process?)中声明的。 您需要在第一次从同一个对象引用它:main。您需要引用[mainObj.process stopAnimating]的原始实例。

您可以将main设为单身,或者更好的是,您可以为main定义委托协议,webservices可以作为委托。这种方式main可以在完成处理后通知webservicesmain可以停止动画。

答案 1 :(得分:0)

main *obj = [[main alloc]init];
[obj.process stopAnimating];

您正在此处创建主类的另一个对象并停止其进程的活动指示器...而不是创建一个新对象,您需要引用您调用[process startAnimating]

的进程

假设我有一个班级

class ABC
{

//  Construction/Destruction
public:
                     ABC();
    virtual         ~ABC();
// member 
    int var1;

};

现在我在文件XYZ.cpp

中创建ABC类的对象
ABC *abc_object1 = new ABC;
abc_object1->var1 = 5; 

现在我想在另一个类PQR.cpp中使用这个abc_object1的var1

如果我创建另一个对象

ABC *abc_object2 = new ABC;
printf("value is %d",abc_object2->var1);

值为null或者垃圾,而不是我们在XYZ.cpp中设置的5,因为它是同一个类的两个不同的对象/实例。你需要以某种方式将XYc.cpp中的abc_object1传递给PQR.cpp ......很可能是函数的参数......

同样适用于你的代码......我希望这个简单的例子能够清除你的基础