2017-09-16 84 views
0

在我的tvOS應用程序中,我有一個生成示例數據的類。tvOS - 如何從頂級ServiceProvider.swift中的類中檢索對象?

import Foundation 
import UIKit 

class SampleData { 

    class func initializeSampleData() -> [Object] { 

     var data = [Object]() 

     // Cities 
     let obj_01 = Object(title: "Dubai", 
          country: "United Arab Emirates", 
          cDescription: "Dubai has positioned itself as a global metropolitan city with its majestic buildings.", 
          image: #imageLiteral(resourceName: "city_dubai"), 
          category: "Cities") 

     let obj_02 = Object(title: "Paris", 
          country: "France", 
          cDescription: "The Eiffel Tower is one of the world's more recognizable building landscapes.", 
          image: #imageLiteral(resourceName: "city_paris"), 
          category: "Cities") 

     let obj_03 = Object(title: "Tokoyo", 
          country: "Japan", 
          cDescription: "One of the most crowded cities in the world. So many advertisements!", 
          image: #imageLiteral(resourceName: "city_tokoyo"), 
          category: "Cities") 

     let obj_04 = Object(title: "Madrid", 
          country: "Spain", 
          cDescription: "One of Europe's oldest cities, Madrid skyscape is beautiful year round.", 
          image: #imageLiteral(resourceName: "city_madrid"), 
          category: "Cities") 

     let obj_05 = Object(title: "New York", 
          country: "United States", 
          cDescription: "A view of the Empire State building and its surrounding buildings.", 
          image: #imageLiteral(resourceName: "city_newyork"), 
          category: "Cities") 

     // Sports 
     let obj_06 = Object(title: "Olypics logo", 
          country: "Brazil", 
          cDescription: "Gotta love watching the Olympics whenever, whereever!", 
          image: #imageLiteral(resourceName: "sports_olympics"), 
          category: "Sports") 

     let obj_07 = Object(title: "Rio 2016 Olympics", 
          country: "Brazil", 
          cDescription: "Kicking off the start of the 2016 Olympic games. So much festivities!", 
          image: #imageLiteral(resourceName: "sports_rio2016"), 
          category: "Sports") 

     let obj_08 = Object(title: "Rio 2016 Olympics Mascot", 
          country: "Brazil", 
          cDescription: "A wonderful aerial view of Rio De Janeiro behind the crazy mascot on the suspended lift!", 
          image: #imageLiteral(resourceName: "sports_mascot"), 
          category: "Sports") 

     let obj_09 = Object(title: "Cycling Atheletes", 
          country: "Brazil", 
          cDescription: "Athletes from around the world come and compete against each other in the Olympic games.", 
          image: #imageLiteral(resourceName: "sports_cycling"), 
          category: "Sports") 

     let obj_10 = Object(title: "Runner Athletes", 
          country: "Brazil", 
          cDescription: "Athletes from around the world come and compete against each other in the Olympic games.", 
          image: #imageLiteral(resourceName: "sports_runners"), 
          category: "Sports") 

     // Foods 
     let obj_11 = Object(title: "Sweets", 
          country: "Italy", 
          cDescription: "Who, tell me who does not love Italian sweets! Drewl.", 
          image: #imageLiteral(resourceName: "foods_sweets"), 
          category: "Foods") 

     let obj_12 = Object(title: "Octopus", 
          country: "Italy", 
          cDescription: "A delicasy, and a slimey one at that. It is thought to be a natural aphrodesiac.", 
          image: #imageLiteral(resourceName: "foods_octopus"), 
          category: "Foods") 

     let obj_13 = Object(title: "Bolognese Pasta", 
          country: "Italy", 
          cDescription: "Pasta in all its forms originate from Italian kitchens.", 
          image: #imageLiteral(resourceName: "foods_bolognese"), 
          category: "Foods") 

     let obj_14 = Object(title: "Bruschetta", 
          country: "Italy", 
          cDescription: "Bruschetta is an antipasto consisting of grilled bread rubbed with garlic and topped with olive oil and salt.", 
          image: #imageLiteral(resourceName: "foods_bruschetta"), 
          category: "Foods") 

     let obj_15 = Object(title: "Chocolate Budino", 
          country: "Italy", 
          cDescription: "Warm chocolate budino is a luscious cross between cake and pudding. Yum!", 
          image: #imageLiteral(resourceName: "foods_chocolate_budino"), 
          category: "Foods") 


     data.append(obj_01) 
     data.append(obj_02) 
     data.append(obj_03) 
     data.append(obj_04) 
     data.append(obj_05) 
     data.append(obj_06) 
     data.append(obj_07) 
     data.append(obj_08) 
     data.append(obj_09) 
     data.append(obj_10) 
     data.append(obj_11) 
     data.append(obj_12) 
     data.append(obj_13) 
     data.append(obj_14) 
     data.append(obj_15) 

     return data 
    } 

} 

我希望能夠調用相同的類函數從我的頂層ServiceProvider.swift中檢索相同的數據。當我嘗試下面的代碼,Xcode中給了我一個「利用未解決的標識符的sampleData」

var topShelfItems: [TVContentItem] { 

    let objects = SampleData.initializeSampleData() 

    //return [] 
} 

任何幫助深表感謝。

回答

1

當你想在目標(iphone/ipad/tv/watch /其他服務)之間共享文件時,點擊Xcode中的文件,你會在屏幕的右側部分看到「目標成員」選項。選擇你希望你的代碼可以訪問的目標。

既然我已經回答了我自己的問題,我的建議是:不要像我一樣去檢索數據到頂端。有一種將數據導入頂部的預定義方式。只需從Apple下載代碼示例,然後查看代碼:https://developer.apple.com/library/content/samplecode/UICatalogFortvOS/Introduction/Intro.html