在ios中将多个数组添加到单个数组中

时间:2016-05-20 05:58:49

标签: ios

1)我正在开发一个包含一个tableview的应用程序,在tableview上方有一个水平scrollview,其中包含动态按钮的数量eg.button1,button2 ....

2)触摸每个按钮json正在进行,我正在使用NSURLSession.eg解析并在tableview中显示json。按一下button1 json将会触摸,触摸button2时会出现不同的json。

3)之后我想将每个按钮json数组存储到单个数组中并相应地显示。假设我点击了button2 json将来,应该存储在数组中,以便将来我修饰按钮数据应该来自存储的数组。

我是管理点1& 2但不知道如何解决3分。 我还添加了一个图像,可以清楚地了解我的问题。 如果有任何人有想法,请回复此问题。谢谢。 enter image description here

2 个答案:

答案 0 :(得分:2)

如果需要,您可以使用NSCache来缓存项目,它就像NSDictionary一样。

// Init NSCache and declare somewhere as property//you must use singleton approach as well, it's just example i have initialized in viewDidLoad

    - (void)viewDidLoad
    {    
       self.cache = [NSCache alloc] new];
    }

-(void)callApiForKey:(NSString *)buttonName{
        id aObject = [self.cache objectForKey:buttonName]
        if aObject == nil {
          //perform the API call you are talking about
          //after the fetch is preformed and you get data...
          [self.cache setObject: dataObject forKey:buttonName];
          //perform what you need to with said object
        } else {
          //perform operation with cached object
        }
    }

用途:

在您的按钮上单击动作调用上面的方法与buton文本: yourButton.titleLabel.text。

[self callApiForKey:yourButton.titleLabel.text];

是自己的密钥must是唯一的。另外,你可能会明显地得到/设置错误的数据。

由于

答案 1 :(得分:0)

-Each button have a unique tag right? Like button 1 have tag 1, button 2 have tag 2 ,button 3 have tag 3,
-you can manage this thing by Global nsmutabledictionary and nsmutableArray.
-if you click on button 1 before api calling you check 
if(dictionary valueforkey:@"1") (1mean selected button tag)
{
  no need to call api 
  no need to add array in dictionary
  array=[[dictionary valueforkey:@"1"]mutablecopy];(1mean selected button tag)
  [tble reloaddata];

}
else
{
  api calling 
  here you can add array in dictionary
  [dictionary setobject:yourarray forkey:@"1"];
  array=[[dictionary valueforkey:@"1"]mutablecopy];(1mean selected button tag)
  [tble reloaddata];
}