首页 文章

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

提问于
浏览
0

我需要将参数传递给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 回答

  • -1

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

  • 0

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

    一个简单的选项是将每个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 查找它 .

相关问题