是否可以将某些对象的描述(字符串表示)转换为某个类的对象?

时间:2012-04-08 15:26:37

标签: ios object

我需要将参数传递给IBAction(但它只有发送者(id) - 在我的情况下是UIButton),所以我想知道是否可以将某些对象的描述转换为对象。现在我将参数作为按钮[titleLabel text]传递:

    [[button titleLabel]setText:[someObject description]];

在IBAction中我得到了描述:

  - (IBAction)AddToCalendarEvent:(id)sender {
         NSString * description = [[sender titleLabel]text];
         NSLog(@"description is %@", desc);
  }

现在我想将此描述转换为对象。有可能吗?

UPD 我正在用单元格动态填充表格视图。每个单元格有四个按钮,我希望这些按钮保留一些对象作为参数传递给IBAction。 each button has to store date

2 个答案:

答案 0 :(得分:0)

根据我已阅读并且目前了解您的问题,我认为最适合您的解决方案是在View Controller上维护按钮的数组(或其他一些适当的数据结构)。然后,在您按下每个按钮时调用的操作方法中,您可以在按钮数组中搜索操作方法的发件人。然后,一旦你弄清楚哪个按钮已被点击,你可以使用它来查找你在数据模型中寻找的任何数据。您应该将此解决方案应用于您的情况,它可能最终看起来有点不同,但基本的想法是合理的。您应该避免在视图中保持状态(在这种情况下是您的按钮),看起来您正在接近问题描述中的状态。

答案 1 :(得分:-1)

你绝对不会以这种方式转换。

一个简单的选项是将每个UIButton的tag设置为一个唯一的整数,并存储您需要查找的对象数组:

- (IBAction)AddToCalendarEvent:(id)sender {
    NSInteger senderTag = [sender tag];
    NSLog(@"Sender index = %d", senderTag);
    // Use this tag as an index to the array.
}

更复杂的路线是将UIButton子类化(通常不推荐),以便为每个UIButton存储相关数据。然后,您可以再次从sender

查找