标签: swift3

在 Swift 3 中将数据保存到 .plist 文件

我已成功将数据从 plist 文件读取到表视图中。现在,我只想知道如何添加另一个带有字符串“名称”和“位置”的“项目”。

我正在寻找的是一种发送字符串以保存为新“项目”的“名称”或“位置”的方法。例如,如果我单击一个按钮,输入的信息将存储在新“项目”下的 plist 文件中。

有人能帮助我朝正确的方向前进吗?如果是你,你会怎么做?

我正在使用 Swift 3 和 Xcode 8.2.1

这是我的 .plist 文件: 在此处输入图像描述

这是我用来获取“项目”的“名称”和“位置”的代码,以便我可以将其插入表视图中:

struct SavedTracks {

    let name: String
    let location: String
}

extension SavedTracks {
    enum ErrorType: Error {
        case noPlistFile
        case cannotReadFile
    }

    /// Load all the elements from the plist file
    static func loadFromPlist() throws -> [SavedTracks] {
        // First we need to find the plist
        guard let file = Bundle.main.path(forResource: "SkiTracks", ofType: "plist") else {
            throw ErrorType.noPlistFile
        }

        // Then we …
Run Code Online (Sandbox Code Playgroud)

arrays xcode ios swift swift3

0
推荐指数
1
解决办法
8262
查看次数

Swift 3 创建提醒 EKEventStore

我想将提醒保存到默认提醒位置。但是当我按下按钮时,我收到一个致命错误:在展开可选值时意外发现 nil...我对此很陌生,我找到的大多数示例都过于复杂或不在 Swift 3 中。

class ViewController: UIViewController {

var eventStore: EKEventStore?

@IBOutlet weak var reminderText: UITextField!

@IBAction func setReminder(_ sender: Any) {

    let reminder = EKReminder(eventStore: self.eventStore!)

    reminder.title = "Go to the store and buy milk"
    reminder.calendar = (eventStore?.defaultCalendarForNewReminders())!

    do {
        try eventStore?.save(reminder,
                             commit: true)
    } catch let error {
        print("Reminder failed with error \(error.localizedDescription)")
    }

   } 
 }
Run Code Online (Sandbox Code Playgroud)

reminders eventkit swift3

0
推荐指数
1
解决办法
6031
查看次数

检查项目包含在 swift 3 的模型对象数组中

我有一个名为 user 的模型对象。如何从所有用户集合中找到我的 user.id。我需要这样的东西UsersCollection.contains(user.id) 并返回 Bool 值。

arrays swift3

0
推荐指数
1
解决办法
1946
查看次数

条件绑定的初始化程序必须具有可选类型,而不是“[String:Any]”

谁能告诉我如何解决这个问题?我只是想接收来自说话事物的信号。

\n\n
   `self.title = "Home"\n    print("Requesting data...")\n    Alamofire.request( "https://api.thingspeak.com/channels/290427/feeds.json", parameters: ["results": "1", "location": "false"]) // Gets the latest info from ThingSpeak\n        .responseJSON { response in\n\n            print("Data downloaded: \\(response.result)")\n            if let json = response.result.value as! [String:Any] {\n                print(json) //see full data\n\n                if let feeds = json["feeds"] as? [String: Any] {\n\n                    for feed in feeds {\n                        print(feed["field2"])\n                        if let temperatureStr = feed["field2"] as? String, let dateStr = feed["created_at"] as? String {\n                            if let temperature = Double(temperatureStr){\n                                self.label.text = "Temperature: \\(temperature)\xc2\xb0F" //Displays last …
Run Code Online (Sandbox Code Playgroud)

optional-parameters swift alamofire swift3

0
推荐指数
1
解决办法
4693
查看次数

Swift 协议委托返回 nil

protocol testDelegate: class {
    func open(channel: String, vc: UIViewController)
}

class test: UIViewController{

    weak var delegate: testDelegate?
}
override func viewDidLoad() {
        super.viewDidLoad()
        if self.delegate != nil {
        print("hello")
        self.delegate?.openGroupChannel(channel: channel!, vc: self)

}   
Run Code Online (Sandbox Code Playgroud)

那是课堂测试!测试类中的协议初始化也是如此

class calling:testDelegate{

override func viewDidLoad() {
        //blah blah       
    }   

func func open(channel: String, vc: UIViewController){
    print("calling")
}
Run Code Online (Sandbox Code Playgroud)

这是调用类。

我想在调用类中调用 open func 但它根本不调用,甚至测试类中的 print("hello") 也没有调用它,它保持返回 nil 因此也不会调用调用函数。

iphone ios swift3

0
推荐指数
1
解决办法
3445
查看次数

无法将“NSNull”类型的值转换为“NSDictionary”

我在“self.email = (snapshot.value as! NSDictionary)["email"] as! String”行中收到错误,表示它无法转换“NSNull”类型的值。我该如何修复该错误?我认为既然我有一个函数 toAnyObject ,它就会将所有内容转换为字符串。

struct User {
    var email: String!
    var uid: String!
    var ref: DatabaseReference!
    var key: String = ""

    init(snapshot: DataSnapshot) {
        self.email = (snapshot.value as! NSDictionary)["email"] as! String
        self.uid = (snapshot.value as! NSDictionary)["uid"] as! String
        self.ref = snapshot.ref
        self.key = snapshot.key
    }

    init(email: String, uid: String) {
        self.email = email
        self.uid = uid
        self.ref = Database.database().reference()
    }

    func toAnyObject() -> [String: Any] {
        return ["email":self.email, "uid":self.uid]
    }
}
Run Code Online (Sandbox Code Playgroud)

xcode dictionary ios swift swift3

0
推荐指数
1
解决办法
4078
查看次数

如何将 Objective-C 块转换为 Swift 闭包

我有一个方法,其中包含一个在 Objective-C 中定义的块:

+(void)getNewList:(NewListRequestModel *)model returnInfo:(void(^)(NewListResponseModel* resModel))retModel;
Run Code Online (Sandbox Code Playgroud)

我像这样调用它:

[API getNewList:model returnInfo:^(NewListResponseModel *resModel) {
      //code
}];
Run Code Online (Sandbox Code Playgroud)

在 Objective-C 中。

现在我想在 Swift 3.2 中调用它:

 API.getNewList(model, returnInfo: {(resModel: NewListResponseModel) -> () in
       //my code     

  })
Run Code Online (Sandbox Code Playgroud)

但我总是遇到错误:

Cannot convert value of type '(NewListResponseModel) -> Void' to expected argument type '((NewListResponseModel?) -> Void)!'
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我以正确的方式调用它吗?谢谢。

closures objective-c-blocks swift swift3

0
推荐指数
1
解决办法
2337
查看次数

如何在swift 3中清除Linkedin的登录会话

我使用此链接开发了 Login with LinkedIn ,但现在我需要在某些特定逻辑上清除登录会话。怎么清除呢?

\n\n

我使用了这个 URL 但出现以下错误

\n\n
\n

https://api.linkedin.com/uas/oauth/invalidateToken

\n
\n\n

错误:

\n\n
\n

无法完成操作\xe2\x80\x99。(LISDKErrorAPIDomain 错误 400。)

\n
\n

ios linkedin-api swift3

0
推荐指数
1
解决办法
731
查看次数

Date conversion is always nil in iPhone 24hr date format

i trying to convert string to Date which is properly working in 12hr date format. when i switch the device date format to 24, its always returning nil. Please check the below code

    let formatter = DateFormatter()
    formatter.dateFormat = "h:mm a"
    let date = formatter.date(from: "6:00 am")
Run Code Online (Sandbox Code Playgroud)

xcode nsdateformatter ios swift3

-1
推荐指数
1
解决办法
199
查看次数

iOS Swift:按值对数组进行排序时,将字符串转换为浮点数的位置

在 iOS Swift 中,我按照下面的代码按降序对数组进行排序。该代码工作正常,但是,'Price' 不是双精度数而是字符串(因此当前代码在是多位数字时会犯一些错误)。

如何在此单行排序函数中将字符串 'Price' 转换为双精度值?

OfferList.sort { $0.Price > $1.Price }
Run Code Online (Sandbox Code Playgroud)

我知道在将排序编写为多行循环时有办法做到这一点,但是有没有办法直接在上面的行中做到这一点?

arrays sorting ios swift swift3

-1
推荐指数
1
解决办法
760
查看次数