gpt4 book ai didi

ios - Swift - 使用创建的 plist

转载 作者:行者123 更新时间:2023-11-29 02:11:19 33 4
gpt4 key购买 nike

我正在为我的应用程序创建一个 API key plist,我正在尝试弄清楚如何创建一个函数,将这些 plist 值存储在可以在我的其他文件中使用的变量中。我的 ApiKeys.plist 如下所示:

根 - 字典 - (空白)

  • Parse_App_Id - 字符串 - xxxxxxx
  • Parse_Client_Id - 字符串 - xxxxxx

然后我有一个 ApiKeys.swift 文件,其中存储了我的函数:

import Foundation

func valueForAPIKey(#keyname:String) -> String {

let filePath = NSBundle.mainBundle().pathForResource("ApiKeys", ofType: "plist")

let plist = NSDictionary(contentsOfFile: filePath!)

let parseAppId:String = plist?.objectForKey("Parse_App_Id") as String
let parseClientId:String = plist?.objectForKey("Parse_Client_Id") as String


return parseAppId && parseClientID

}

旁注:我使用教程来构建此函数,我很好奇这是否是设置函数以存储两个 plist 键的最佳方式。

第一个错误 出现在 return 行。无法调用类型为“(String, String)”的 && 参数列表

AppDelegate.swift:

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.


Parse.setApplicationId(valueForAPIKey.(keyname: "ParseAppId")), clientKey: valueForAPIKey.(keyname:"ParseClientId"))
PFFacebookUtils.initializeFacebook()

return true
}

第二个错误: valueForAPIKey 处需要 ',' 分隔符。(keyname: "ParseAppID")

我对 plist 概念很陌生,所以请原谅我明显的错误和误导

最佳答案

我觉得有些困惑,不仅仅是 plist 的问题。

首先,您的方法期望返回一个字符串。

要么将结果作为单个字符串返回:

func valueForAPIKey(#keyname:String) -> String {
let filePath = NSBundle.mainBundle().pathForResource("ApiKeys", ofType: "plist")

let plist = NSDictionary(contentsOfFile: filePath!)

let parseAppId:String = plist?.objectForKey("Parse_App_Id") as String
let parseClientId:String = plist?.objectForKey("Parse_Client_Id") as String

return "\(parseAppId) \(parseClientID)"
}

或者您选择返回一个元组(或数组),然后您将根据需要访问元素 0 或 1。

func valueForAPIKey(#keyname:String) -> (String, String) {
let filePath = NSBundle.mainBundle().pathForResource("ApiKeys", ofType: "plist")

let plist = NSDictionary(contentsOfFile: filePath!)

let parseAppId:String = plist?.objectForKey("Parse_App_Id") as String
let parseClientId:String = plist?.objectForKey("Parse_Client_Id") as String

return (parseAppId, parseClientID)
}

但是,既然您正在使用参数 keyname,为什么不使用它呢?

func valueForAPIKey(#keyname:String) -> String {
let filePath = NSBundle.mainBundle().pathForResource("ApiKeys", ofType: "plist")

let plist = NSDictionary(contentsOfFile: filePath!)

let id : String = plist?.objectForKey(keyname) as String

return id
}

然后你就可以像这样使用它了:

Parse.setApplicationId(valueForAPIKey("Parse_App_Id"), clientKey : valueForAPIKey("Parse_Client_Id"))

关于ios - Swift - 使用创建的 plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29256132/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com