我用几个应用程序编写应用程序(15-25个不同的swigft文件,每个视图一个。 我将在每个viewcontroller中使用的一些变量和函数。 什么是启用代码重用的最佳做法?
例如,我需要与第一个请求用于访问令牌的服务器通信,我想这个请求可能是设置全局变量(访问令牌)的全局函数。然后将其用于更具体的请求。
我开始在appdelegate文件中放置很多全局常量,在struct中有这个问题吗?
LibraryAPI.swift 导入UIKit 导入CoreData
class LibraryAPI: NSObject
{
let managedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext
private var loginD: LoginDetails
private var isOnline: Bool
class var sharedInstance: LibraryAPI
{
struct Singleton
{
static let instance = LibraryAPI()
}
return Singleton.instance
}
override init()
{
super.init()
}
func getIsOnline() -> Bool
{
return isOnline
}
func setIsOnline(onlineStatus: Bool)
{
isOnline = onlineStatus
}
func getLoginDetails() -> LoginDetails
{
return loginD
}
func setLoginDetails(logindet: LoginDetails)
{
loginD = logindet
}
// Execute the fetch request, and cast the results to an array of objects
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [LoginDetails] {
setLoginDetails(fetchResults[0])
}
}
答案 0 :(得分:0)
你可以这样做
User.swift
import Foundation
import UIKit
class User: NSObject {
var name: String = ""
func getName() -> String{
name = "Nurdin"
return name
}
}
ViewController.swift
import Foundation
import UIKit
let instanceOfUser = User()
println(instanceOfUser.getName()) // return Nurdin
答案 1 :(得分:0)
您应该避免使用全局变量。
根据您拥有的/您需要做的事情,您可以:
prepareForSegue
)传递对象。但每次都可以重复实施; NSUserDefaults
存储字符串; CoreData
,...)。