Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否可以将某个对象的描述(字符串表示)转换为某个类的对象?_Ios_Object - Fatal编程技术网

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

Ios 是否可以将某个对象的描述(字符串表示)转换为某个类的对象?,ios,object,Ios,Object,我需要向iAction传递一个参数(但在我的例子中它只有sender(id)-UIButton),所以我想知道是否可以将某个对象的描述转换为一个对象。现在我将参数作为按钮的[标题标签文本]传递: [[button titleLabel]setText:[someObject description]]; 在IBAction中,我得到了以下描述: - (IBAction)AddToCalendarEvent:(id)sender { NSString * descr

我需要向iAction传递一个参数(但在我的例子中它只有sender(id)-UIButton),所以我想知道是否可以将某个对象的描述转换为一个对象。现在我将参数作为按钮的[标题标签文本]传递:

    [[button titleLabel]setText:[someObject description]];
在IBAction中,我得到了以下描述:

  - (IBAction)AddToCalendarEvent:(id)sender {
         NSString * description = [[sender titleLabel]text];
         NSLog(@"description is %@", desc);
  }
现在我想把这个描述转换成一个对象。可能吗

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

你肯定不会以这种方式转换

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

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

更复杂的方法是将UIButton子类化(通常不推荐),以存储与每个UIButton相关的数据。然后,您可以再次从
发送方

查找它。根据我所读到的以及目前对您的问题的了解,我认为对您来说,最好的解决方案是在视图控制器上维护按钮的数组(或其他适当的数据结构)。然后,在每个按钮点击时调用的操作方法中,您可以在按钮数组中搜索操作方法的发送者。然后,一旦您确定点击了哪个按钮,就可以使用该按钮在数据模型中查找所需的任何数据。您应该将此解决方案应用于您的情况,结果可能会有点不同,但基本思想是正确的。您应该避免在视图中维护状态(在本例中是您的按钮),从您对问题的描述来看,您似乎正在接近状态。

您能更具体地说明您试图解决的问题吗?这在您的原始问题中并不清楚,可能是您处理问题时出错了。
NSString
是对象。您不需要将描述转换为对象。在视图上使用标记是很脆弱的,而且是一个不好的习惯。我不建议使用该路由,除非它是剩下的唯一选项(不太可能/很少)。谢谢,但我通过传递object的参数解决了这个问题,该参数被转换为字符串,以“:”分隔。然后我使用了NSArray*fields=[rawString Components由字符串分离:@]:“;