以编程方式创建变量

时间:2012-06-22 02:19:27

标签: objective-c ios xcode variables

我想根据我的输入更改tableview的数量,这将根据用户而改变,我需要能够在我的数据源中引用这些tableview,因为它们应该根据tableview保留不同的数据。我想如果我可以为每个创建的tableview创建一个唯一的变量,这可能会完成,但我需要能够通过我的全班引用这些变量?

2 个答案:

答案 0 :(得分:2)

您可以创建一个NSMutable Array并直接在其中添加UITableView。您可以使用静态引用创建全局变量存储并全局访问它。

@interface Singleton : NSObject {
  NSMutableArray *TableArray;
}
+ (Singleton *)instance;
@end

@implementation Singleton

+ (Singleton *)instance  {
    static Singleton *instance;

    @synchronized(self) {
        if(!instance) {
            instance = [[Singleton alloc] init];
        }
    }
    return instance;
}

另一种选择是在您的appdelegate中包含NSMutableArray,并在整个应用程序中全局访问它。

动态创建对象不是问题。 你可以创建尽可能多的UITableview,并使用。

将它们添加到NSMutableArray
UITableview *temp = [UITableview alloc] initWithFrame : ... ];
temp.delegate = self ; 
tableArray.addObject(temp);

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath(NSIndexPath *)indexPath{

      if(tableView  = [tableArray objectAtIndex:x]{
        // do this 
       }
        else if (select appropriate table view from array ){

       }
       //do this for the rest
 }

您面临的是设计问题。有关其他替代方案,请参阅Apple Guides for Objects Communication

答案 1 :(得分:1)

为什么不创建一个NSMutableArray成员变量来存储它们呢?需要更改数据源时,将特定的tableview设置为数据源。我不确定你究竟要做什么的细节,但动态添加它们并改变数据源应该不是问题。