0

我想显示不同计算的不同字符串集取决于发送者的响应..2 组字符串是并行的,这意味着命名就像.. user1、user2、object1、object2、name1、name2、age1、age2 等..到目前为止我所知道的是使用...

-(IBAction)showLotOfStuff:(id)sender{
switch ([sender tag]) {
case 1: //show user1, object1, name1, age1...
case 2: //show user2, object2, name2 age2...}

但是,到那时我将有双倍大小和重复代码,因为我有很多事情要做和展示..它真的很愚蠢,它涉及数组、计算,我真的不想看两次,虽然我可以通过简单的复制来完成并粘贴..

我想知道有没有什么办法可以把它们减半。。

-(IBAction)showLotOfStuff:(id)sender{
show user[sender tag], object[sender tag], 
name[sender tag], age[sender tag]...}

我认为这个问题很基本,但我就是不知道该怎么做。谢谢你的帮助!

4

1 回答 1

1

你有一组用户吗?你的数据是什么样的?您可能可以重构它而不是重复代码。

假设您有一个NSArray被调用的users.

不确定您使用的是哪种控件,但为简单起见,我们可以假设您有一些按钮,每个按钮都应显示其中一位用户的信息。您可以给按钮标签对应于数组用户的位置,理想情况下有一些偏移量,以减少使用这些标签做其他事情时出错的机会。(即假设您有 3 个标签为 100、101 和 102 的按钮,以及数组中有 3 个用户)。

然后,您可以执行以下操作:

- (IBAction)showLotOfStuff:(id)sender
{
  int userIndex = sender.tag - 100; // you could define 100 as a constant called userOffset or something to make this a little cleaner
  if(users.count <= userIndex)
    return; // out of bounds, probably want to check for this and handle it somehow

   MyObjectType *currentUser = [users objectAtIndex:userIndex];
   // do whatever with your user
}

这是一个普遍的例子。具体实现取决于您未提供的更多细节。

于 2012-07-25T18:17:26.277 回答