【发布时间】:2016-03-19 03:51:16
【问题描述】:
我使用 UserDefualt 来保存 Dictionary 数组:
let pref = NSUserDefaults.standardUserDefaults();
var fav=pref.arrayForKey("favRecipes")!;
fav.append(self.dict);
pref.setObject(fav, forKey: "favRecipes");
在我保存另一个数据之前,我检查它是否已经存在:
@IBAction func addToFavorites(sender: UIButton) {
//not exist
if !isFavorite(){
var fav=pref.arrayForKey("favRecipes")!;
fav.append(self.dict);
pref.setObject(fav, forKey: "favRecipes");
print("added");
} //exist
else{
;
}
}
private func isFavorite()->Bool{
var fav=pref.arrayForKey("favRecipes")!;
for r in fav{
if r["id"]! as! Int==id{
return true;
}
}
return false;
}
此代码的目的是将某些内容添加到您的收藏夹列表中,如果它已经存在,您可以选择将其删除。 由于某种原因,我没有成功完成最后一部分。
这是我迄今为止的尝试:
func remove(event:UIAlertAction!){
var fav=pref.arrayForKey("favRecipes")!;
for r in fav{
if r["id"]! as! Int==id{
pref.removeObjectForKey("\(id)");
//pref.synchronize();
//fav=pref.arrayForKey("favRecipes")!;
//print(r["id"] as! Int);
}
}
}
当然,我尝试在 userDefualt 查找和搜索有关从字典中删除的信息,但没有任何帮助。
【问题讨论】:
-
@luk2302 使用 ;没有错,也没有任何规则说我们不应该使用分号,即使很难,它也不会迅速做任何事情。由程序员决定。您可以尝试回答问题或使用评论部分提供建议以找到解决方案,而不是粗鲁。谢谢。
-
@iamyogish 有编码标准,你不要在swift中使用
;,你用驼峰写变量名,你用帕斯卡写类名等等。你什么都没有 /i> 去做,但你肯定 应该 做的事情 - 总是。从编程开始你就应该知道给定语言的编码标准:不要使用;- 这不是objective-c -
@luk2302 我同意必须遵循编码标准。你本可以告诉那个人以更好的方式使用它,就像你评论分号的方式一样,这就是我想说的粗鲁。是的,仅供参考,请查看苹果文档 - developer.apple.com/library/ios/documentation/Swift/Conceptual/… - 它说与许多其他语言不同,Swift 不要求您在代码中的每个语句后写分号 (;),尽管您可以根据需要这样做。由开发者决定使用;
-
而且你几乎可以在一行中编写整个程序,仅仅因为你可以并不意味着你应该。
-
@luk2302 老兄,你想强加什么?标准是标准,它们不是规则,好吗?我同意你的观点,一个好的开发人员应该遵循编码标准。我要说的一点是在你的回答或 cmets 中尽量保持礼貌。只是不要粗鲁。你明白了吗 ??请不要粗鲁。谢谢。
标签: ios arrays swift dictionary nsuserdefaults