【问题标题】:Inserting empty array with loop用循环插入空数组
【发布时间】:2016-07-08 13:14:57
【问题描述】:

我想通过循环另一个数组的值来为空数组添加值

var Person : [String:String]

var data : [String:String] = [
   "name" : "John",
    "age"   : "22"
]

for (index, value) in data {
    Person[index] = value
}

我得到了这个错误“变量 Person 在被初始化之前通过引用传递”

为什么会这样?

【问题讨论】:

  • 为什么这个问题被标记为 obj-c 和 obj-c++?
  • 在swift中你已经初始化你的变量或将它们标记为可选
  • @angger 你试试我的回答了吗?
  • @Vvk 我只是尝试解释快速变量声明逻辑而不是直接回答它。
  • @AliKıran 感谢您的解释:)

标签: swift


【解决方案1】:

试试这个

// Array initialization
    var Person = [String:String]()

    var data : [String:String] = [
        "name" : "John",
        "age"   : "22"
    ]

    for (index, value) in data {
        Person[index] = value
    }

希望对你有帮助。

【讨论】:

  • 谢谢!我想我在那里鲁莽
  • @Angger 欢迎。初始化数组的方法有很多,但这个很简单。
【解决方案2】:

改变:

var Person : [String:String]

到:

var Person = [String:String]()

在使用之前初始化数组。

【讨论】:

    【解决方案3】:

    在目标 C 中

    #import "ViewController.h"
    
    @interface ViewController ()
    {
      NSMutableArray *arr,*arrSecond;
    }
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad 
    {
       [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
       //First Array
       arr = [[NSMutableArray alloc]initWithObjects:@"iOS",@"Android",@"Windows",@"Blackberry",@"Symbion",@"Bada",nil];
       arrSecond = [[NSMutableArray alloc]init];
       for(int i=0;i<[arr count];i++)
       {
         //Second Array inside the for loop.It is getting objects from First loop of for
         [arrSecond addObject:[NSString stringWithFormat:@"%@",[arr objectAtIndex:i]]];
       }
     }
    

    【讨论】:

      【解决方案4】:

      您在这里声明的是字典,而不是数组。上面的代码(在 Vvk 的回答中)实现的结果相同,只需编写:

      var Person = [ "name" : "John", "age" : "22" ]
      

      如果您想使用循环将项目添加到字典中,那么您可以,但在这种情况下我看不到它的价值。

      如果目标是将Person 中的值设置为等于data 中的值,那么您可以编写:

      var Person = [String:String]()
      
      var data = [ "name" : "John", "age"   : "22" ]
      
      Person = data
      

      不需要循环,除非您的项目范围更广。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-19
        • 2015-05-11
        • 1970-01-01
        • 2020-01-28
        • 1970-01-01
        • 2019-10-18
        • 2014-09-17
        相关资源
        最近更新 更多