2016-12-19 2 views
1

У меня есть attrribute evenNum, который содержит массив четных чисел, я хотел бы напечатать массив, хранящийся в атрибуте на консоль , как этоЦелое число ошибок массива при отображении данных

[ "2, 6, 8, 10 ", "24, 22, 20", "2, 6, 34"]

, так что я сделал это и получил ошибку, которая показана в комментарии ниже

var evenNumArr:[Int] = [] 

let results = try context.fetch(request) 

    if results.count > 0 
    { 
     for result in results as! [NSManagedObject] 
     { 

    if let evenNumbers = result.value(forKey: "evenNum") as? [Int] 
    { 
     //Cannot convert value of type '[Int]' to excepted argument type 'int' 
     evenNumArr.append(evenNumbers) 
    } 
    } 
    print(evenNumArr) 

Что я здесь пропал?

+1

Ваш вывод с кавычками означает, что у вас есть массив строк. «2, 6, 8, 10» выглядит как строка для меня. Вы просто хотите отобразить свой массив? В чем причина группировок в кавычках? –

ответ

1

Похоже, что вы хотите, массив массивов. Вам необходимо изменить способ объявления evenNumArr:

var evenNumArr:[[Int]] = [] 

if let evenNumbers = result.value(forKey: "evenNum") as? [Int] 
{ 
    evenNumArr.append(evenNumbers) 
} 

print(evenNumArr) 
+0

Я редактировал вопрос с результатом. После реализации вашего решения, я получаю значения на этот раз в массиве, как это [2, 6, 8, 10, 24, 22, 20, 2, 6, 34], но не попарно, как в вопросе – Coder221

+0

. В вашем вопрос. Что вы имеете в виду? – rmaddy

+0

Я имею в виду, что 2, 6, 8, 10 хранятся в одном массиве, а 24, 22, 20 хранятся в другом. Извините за мой язык – Coder221

0

Он прямо говорит вам об ошибке. Вы пытаетесь добавить evenNumbers, которые вы объявили как тип [Int] в:

let evenNumbers = result.value(forKey: "evenNum") as? [Int] 

на evenNumArr массив, состоящий из Int «s

Вы можете только добавить один и тот же тип, что массив содержит.

В Swift можно объединить массивы в качестве таковых:

let ones = [Int]() 
var twos = [Int]() 
twos += ones 
Смежные вопросы