2017-09-16 53 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