Tag: 字典

添加字典时避免重复

我有一个字典,我正在添加像这样的值… var mydictionary = ["id": "", "quantity": "","sellingPrice":""] as [String : Any] dictionary["id"] = product?.id dictionary["quantity"] = product?.quantity dictionary["sellingPrice"] = product?.theRate 而我把这些值添加到像这样的数组… self.arrayOfDictionary.append(mydictionary) 但是,如果arrayOfDictionary已经包含mydictionary ,我不想添加它。 否则,我想添加它。 这里的基本思想是将集合视图项中的数据添加到字典数组中。 当我点击每个集合查看项目上的button时,数据就被添加到字典数组中。 同时在tableviewcell中显示这些数据。 但是,当我从tableview中导航并再次访问collectionview项目并单击其他collecn.view项目,以便像以前那样将它们添加到字典数组中时,最初添加到字典数组中的项目获取再次添加。 这必须以某种方式阻止。 正如另一个SO用户所build议的这样的尝试,以防止这种重复… if self.arrayOfDictionary.contains(where: { (dict) -> Bool in "\(dict["id"] ?? "")" != "\(dictionary["id"] ?? "")"}) { self.arrayOfDictionary.append(dictionary) } 但是这似乎不起作用。 没有任何东西被添加到数组中,而它完全是空的。 希望有人能帮助…

如何在IOS中为这个Json响应dynamic创build可变字典

这是我的JSON响应1的时间inputSpent_on:“2015-12-27” { "A": { "user": { "id": 1, "name": "B" }, "startday": "2015-12-27", "status": "New", "total": 2, "time_entries": [{ "id": 768, "project": { "id": 8, "name": "C" }, "user": { "id": 1, "name": "B" }, "activity": { "id": 8, "name": "D" }, "hours": 2, "comments": "", "spent_on": "2015-12-27" }] } } 我已经创build了这样的字典格式来做后期操作: NSDictionary * response […]

如何获取CGPDFDictionaryRef键

我想获得一个CGPDFDictionaryRef的所有键。 到目前为止,这是我从stackoverflowfind的 这是我的代码在迅速: func printPDFKeys(key: UnsafePointer<Int8>, ob: CGPDFObjectRef, info: UnsafeMutablePointer<()>) -> Void{ NSLog("key = %s", key); //return (key, ob , info) } 这个函数然后像这样调用。 let myDoc = CGPDFDocumentCreateWithURL(url) if myDoc != nil { let myCatalog=CGPDFDocumentGetCatalog(myDoc) CGPDFDictionaryApplyFunction(myCatalog, printPDFKeys, nil);//Compiler error here } 但是我收到一个错误 ac函数指针只能由对'func'或文字闭包的引用形成 我也尝试使用这样的闭包: var printPDFKeys: ( UnsafePointer<Int8>, CGPDFObjectRef, UnsafeMutablePointer<()> )-> Void printPDFKeys={ key,ob,info in NSLog("key […]

Swift 3.0从不同的视图控制器获取用户位置坐标

我有两个视图控制器 – 一个是能够通过locationManager获得用户位置协调的mapView,另一个是我希望能够拉动这些用户坐标的VC。 首先VC:MapView func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { var coordinatesOfUser = locations.last?.coordinate print("The value of usercoordinates are \(coordinatesOfUser)") // here I want to be able to pull this variable, coordinatesOfUser if let location = locations.last { let span = MKCoordinateSpanMake(0.00775, 0.00775) let myLocation = CLLocationCoordinate2DMake(location.coordinate.latitude,location.coordinate.longitude) let region = MKCoordinateRegionMake(myLocation, span) map.setRegion(region, […]

实例化存储在metatype字典中的类

我已经按照制作一个Swift字典的关键是“types”的解决scheme? 创build可以使用类types作为键的字典。 我想要做的是:我有一个字典,应该存储类types与他们的类types(又名元types)作为键: class MyScenario { static var metatype:Metatype<MyScenario> { return Metatype(self) } } var scenarioClasses:[Metatype<MyScenario>: MyScenario.Type] = [:] 然后我有方法来注册和执行scheme: public func registerScenario(scenarioID:MyScenario.Type) { if (scenarioClasses[scenarioID.metatype] == nil) { scenarioClasses[scenarioID.metatype] = scenarioID } } public func executeScenario(scenarioID:MyScenario.Type) { if let scenarioClass = scenarioClasses[scenarioID.metatype] { let scenario = scenarioClass() } } 问题是在最后一行: 使用元types值构造类types为“MyScenario”的对象必须使用“必需的”初始值设定项。 看起来编译器很困惑,因为我不能在这个任务中使用'required'。 有没有人有一个想法,我将不得不在executeScenario()实例化scenarioClass ?

使用谓词iOS SDK从Dictionary的数组中过滤数据

你好,我有一个字典的数组,你能告诉我如何过滤这个数据基于字典键。 ( { "mall_id" = M0550; "mall_name" = "Amrita Shopping Complex"; }, { "mall_id" = M0509; "mall_name" = "Ashoka Market"; }, { "mall_id" = M0943; "mall_name" = "Biju Pattnaik Commercial Complex"; }, { "mall_id" = M0457; "mall_name" = "BMC Bhawani Mall"; }, { "mall_id" = M0460; "mall_name" = "BMC Keshari Mall"; }, { "mall_id" = […]

iOS本地化,模拟器和设备总是使用Base.lproj而不是用户首选的区域设置

我正在创build一个应用程序,现在我想用英语和德语提供 。 我在项目configuration中检查了基本定位标记,并添加了German 。 我留下了英语作为发展的语言。 然后我创build了一个Translation.plist文件,它基本上由我称之为类别的字典组成,例如,我有一个button文本字典,标签文本等等。每个类别字典再次由包含两个string的字典组成:值和注释。 Translation.plist通过XCode本地化。 文件夹Base.lproj , en.lproj和de.lproj存在并包含plist-file的副本。 然后,我创build了一个类Translator.swift ,根据用户的首选语言环境,应该将Translation.plist文件作为NSDictionary加载。 代码如下所示: func relevantDictionary(category: String) -> NSDictionary { let preferredLocale = Bundle.main.preferredLocalizations.first ?? "Base" NSLog("User's preferred locale is \(preferredLocale)") guard let url = Bundle.main.url(forResource: "Translation", withExtension: "plist") else { fatalError("Could not find Translation.plist") } NSLog("Using \(url.absoluteURL) for translation") guard let root = NSDictionary(contentsOf: url) […]

如何将Realm对象转换为嵌套的NSDate属性的JSON?

我有一个嵌套的Realm对象与嵌套对象中的多个嵌套的NSDate属性。 我正在使用这个答案将嵌套的Realm对象转换为NSDictionary ,但我不知道如何将该NSDictionary转换为实际的JSON。 当我使用NSJSONSerialization.dataWithJSONObject() ,我得到的错误: 'Invalid type in JSON write (__NSTaggedDate)' 从我的理解,我必须首先将NSDate属性转换为NSString 。 问题是我不知道如何进入深度嵌套的对象来做到这一点。 此代码生成'Invalid type in JSON write (__NSTaggedDate)'错误中的'Invalid type in JSON write (__NSTaggedDate)' : let exercises = realm.objects(ExerciseProgram).first let dic = exercises!.toDictionary() do { if let postData: NSData = try NSJSONSerialization.dataWithJSONObject(dic, options: NSJSONWritingOptions.PrettyPrinted) { let json = NSString(data: postData, encoding: NSUTF8StringEncoding)! as String […]

从字典数组填充表部分和行

我有一个表,我试图填充从存储模型数据的类。 首先,我的数据存储为一个字典数组,如下所示: var pupilSubjects = ["Tom":["English", "Geography", "History"], "Dick":["English", "Geography", "Physical Education", "Biology"], "Harry": ["English", "Geography", "Physical Education", "Biology"]] 在ViewDidLoad中的TableViewController中,我将字典数组中的信息添加到我称为TableText的类中,如下所示: for dict in pupilSubjects { let key = dict.0 let values = dict.1 tableTexts.append(TableText(name: key, subject: values)) } 我的variablestableTexts存储在我的TableViewController如下: var tableTexts = [TableText]() 我的TableText类如下所示: import UIKit class TableText: NSObject { var name: String var subject: […]

铸造NSDictionary作为词典Swift

我已经看到这在其他问题解决 – 但我认为,因为这个NSDictionary是通过下标访问它抛出一些错误。 func pickRandomRecipe(arrayOfRecipes: NSArray) -> Dictionary<String,Any> { let randomRecipeIndex = Int(arc4random_uniform(UInt32(arrayOfRecipes.count))) //Could not cast value of type '__NSDictionaryI' (0x7fbfc4ce0208) to 'Swift.Dictionary<Swift.String, protocol<>>' (0x7fbfc4e44358) let randomRecipe: Dictionary = arrayOfRecipes[randomRecipeIndex] as! Dictionary<String,Any> return randomRecipe }