在void()函数中使用“self”

时间:2013-11-18 12:28:01

标签: ios objective-c uiviewcontroller void self

我在MyViewController.m文件中无法修改此API:

void my_Callback (void* context, xxxxxx::eventType::type eventtype, int code, const myconst)
{

  //do stuff

}

我需要调用此函数:

-(void) update
{
  self.textbox.test =@"new text";
}

但是当我尝试做的时候

void my_Callback (void* context, xxxxxx::eventType::type eventtype, int code, const myconst)
  {        
      //do stuff
      [self update];        
  }

我收到错误,因为它无法重新调整“自我”。

我试着这样做:

ViewController *newview = [[Viewcontroller alloc]init];
        void my_Callback (void* context, xxxxxx::eventType::type eventtype, int code, const myconst)
        {

          //do stuff
          [newview update];

        }

并最终进入myfunction“更新”,但未设置新文本。

如何更新文字?感谢

2 个答案:

答案 0 :(得分:1)

谁叫这个回调?通常有一种方法来放置一些“用户数据”。在你的情况下,它似乎是回调的void *context参数。

因此,在定义回调的地方,您可能有机会指定上下文。在那里,您可以将它传递给实际的“自我”,以便您以后可以获得它。

但是要小心,因为这样做通常会导致迟早使用已发布的实例。

答案 1 :(得分:-2)

请检查文本框标签是否已初始化。 文本框标签可能未被初始化。