我已成功将数据从 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) 我想将提醒保存到默认提醒位置。但是当我按下按钮时,我收到一个致命错误:在展开可选值时意外发现 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) 我有一个名为 user 的模型对象。如何从所有用户集合中找到我的 user.id。我需要这样的东西UsersCollection.contains(user.id)
并返回 Bool 值。
谁能告诉我如何解决这个问题?我只是想接收来自说话事物的信号。
\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) 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 因此也不会调用调用函数。
我在“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) 我有一个方法,其中包含一个在 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)
有人可以帮助我以正确的方式调用它吗?谢谢。
我使用此链接开发了 Login with LinkedIn ,但现在我需要在某些特定逻辑上清除登录会话。怎么清除呢?
\n\n我使用了这个 URL 但出现以下错误
\n\n\n \n\n\n
错误:
\n\n\n\n无法完成操作\xe2\x80\x99。(LISDKErrorAPIDomain 错误 400。)
\n
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) 在 iOS Swift 中,我按照下面的代码按降序对数组进行排序。该代码工作正常,但是,'Price' 不是双精度数而是字符串(因此当前代码在是多位数字时会犯一些错误)。
如何在此单行排序函数中将字符串 'Price' 转换为双精度值?
OfferList.sort { $0.Price > $1.Price }
Run Code Online (Sandbox Code Playgroud)
我知道在将排序编写为多行循环时有办法做到这一点,但是有没有办法直接在上面的行中做到这一点?