2015-02-26 4 views
1

Я новичок в программировании. Просто начал месяц назад. Я работаю над быстрым проектом и хочу получить данные из Parse.Swift: извлечение 2D-массива из Parse

У меня есть два варианта: у меня есть данные в форме или 1D-массиве, или я могу иметь его в виде 2D-массива. У меня проблема с получением обоих массивов. Я не могу прикрепить картинку, так как у меня нет оценок. Так будет объяснять мою базу данных, как показано ниже: Класс: FruitQuantityMatrix Столбцы: ObjectID, Sr.Number, fruitName, fruitQuantityEachDay. Строки: Apple, Orange, Cherry, Banana, Grape, Guava, Kiwi

В противном случае, если возможно, я также могу использовать 2D-данные для извлечения. В этом случае данные будут чем-то вроде Матрицы ниже. Но я думаю, что лучше использовать массив 1D. Но для обучения я хочу понять, как это работает в Parse.

var QMatrix:[[String]] = [ 
     ["11","12","13","14","15","16","17"], 
     ["10","22","23","24","25","26","27"], 
     ["31","32","33","34","35","36","37"], 
     ["41","42","43","44","45","46","47"], 
     ["51","52","53","54","55","56","57"], 
     ["61","62","63","64","65","66","67"], 
     ["71","72","73","74","75","76","77"] 
    ] 

Я попытался использовать код, который использовался для извлечения изображения, но он не работает. Код выглядит следующим образом:

var imageResources : Array<UIImage> = []  
func loadQuantity() { 

     var query = PFQuery(className: "FruitQuantityMatrix") 
     query.orderByDescending("serialNo") 

     query.findObjectsInBackgroundWithBlock ({(objects:[AnyObject]!, error: NSError!) in 
      if(error == nil){ 

       self.getQuantityData(objects as [PFObject]) 
      } 
      else{ 
       println("Error in retrieving \(error)") 
      } 

     })//findObjectsInBackgroundWithblock - end 


    } 

    func getQuantityData(objects: [PFObject]) { 
     for object in objects { 

      let qty = object["fruitQuantityEachDay"] as PFObject 
      println(qty) 

      qty.getDataInBackgroundWithBlock({ 
       (quantityData: NSData!, error: NSError!) -> Void in 
       if (error == nil) { 
        let fruitQuantityEachDay = self.quantityResources.append(fruitQuantityEachDay!) 
        println(fruitQuantityEachDay!) 
       } 

      })//getDataInBackgroundWithBlock - end 

     }//for - end 
    } 

Я был бы признателен, если бы вы предоставили мне код. Но предпочел бы короткое объяснение, поскольку я хочу самостоятельно программировать. Каждое другое место (сообщество facebook), которое я опубликовал, им нужны деньги, чтобы научить меня. У меня нет денег и я хочу учиться. Поэтому любая помощь будет оценена по достоинству. Спасибо.

+0

Не уверен, что вы хотите помочь с tbh. – Arbitur

+0

@Arbitur Я хранил массив количества фруктов, доступных каждый день в моей базе данных Parse. Поэтому я хочу получить все строки, содержащие «fruitQuantityEachDay» в моем приложении в формате массива. Пример: значения строки в строке Apple: ["11", "10", "31", "41", "51", 61 "] в столбце" fruitQuantityEachDay ". –

+0

Итак, вы хотите добавить всю информацию в 2d, поэтому он выглядит как таблица Ex: массив, в котором каждый индекс (строка) содержит другой массив со всеми данными строки? – Arbitur

ответ

1

Как видно в Docs вы извлечь данные из базы данных с помощью этого метода:

var query = PFQuery(className:"FruitQuantityMatrix") 

query.getObjectInBackgroundWithId("some_id") { object, error in 
    if error == nil { 
     println(object) 
    } 
    else { 
     println(error) 
    } 
} 

А для доступа к значениям внутри object вы рассматривать его как Dictionary:

let name = object["fruitName"] as String 
let arr = object["fruitQuantityEachDay"] as [String] 

Если вы хотите все или конкретную строку без использования идентификатора, то используйте это вместо:

query.whereKey("fruitName", equalTo: "Apple") // Dont use this if you want to retreive all rows 

query.findObjectsInBackgroundWithBlock { object, error in 
    let name = object[rowIndex]["fruitName"] as String 
} 
+0

Мне удалось получить это в моей переменной: fruitQuantityArray = [[( 51, ) 52, 53, 54, 55, 56,)], [( 41, 42, 43, 44, 45, 46,)], [( 31 , 32, 33, 34, 35, 36,)], [( 21, 22, 23, 24, 25, 26,)], [( 11, 10, 31, 41, 51, 61,)]] Что такое JSON. Вы знаете, как преобразовать его в что-то в массив строк? ... Как [["51", "52", "53", "54", "55", "56", "57"], , [41, 42, 43, 44, 45, 46, 47 и т.д.) –

+0

Thats not json, это похоже на массив массивов, напечатанных на консоли. – Arbitur

+0

try print out (fruitQuantityArray as [[String]]) [0] [0] и посмотреть, что вы получаете. – Arbitur

Смежные вопросы