Tag: nsdictionary

静态NSDictionary * const的letterValues = @ {…}在一个方法不会编译

在iPhone的文字游戏中 : 我想在我的自定义视图Tile.m中使用下面的代码: – (void)awakeFromNib { [super awakeFromNib]; static NSDictionary* const letterValues = @{ @"A": @1, @"B": @4, @"C": @4, // … @"X": @8, @"Y": @3, @"Z": @10, }; NSString* randomLetter = [kLetters substringWithRange:[kLetters rangeOfComposedCharacterSequenceAtIndex:arc4random_uniform(kLetters.length)]]; int letterValue = [letterValues[randomLetter] integerValue]; _smallLetter.text = _bigLetter.text = randomLetter; _smallValue.text = _bigValue.text = [NSString stringWithFormat:@"%d", letterValue]; } 不幸的是,这给了我编译错误初始化元素不是一个编译时常量 ,我必须删除static关键字来获取我的应用程序在Xcode(这里全屏 […]

AFNetworking 2.0 – 使用responseObject作为NSDictionary

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 这是在AFNetworking 2.0中发送GET请求的推荐方法 。 我想要得到json中特定键的值,所以我想使用responseObject作为NSDictionary 。 这是我正在尝试: NSError *jsonError = nil; NSDictionary *json = [NSJSONSerialization JSONObjectWithData:(NSData *)responseObject options:kNilOptions error:&jsonError]; 它没有工作: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary […]

弱的对象在NSDictionary?

我想存储在NSDictionary的对象的归零弱引用。 这是为了参考一个父NSDictionary ,所以我可以爬行备份大型结构,而不search。 我不能在这里使用__weak ; 即使我的本地引用很弱, NSDictionary也会存储一个强引用,这个对象被弱引用。 而且,当然, NSDictionary不能nil对象。 我在iOS上,而不是Mac,所以NSHashTable不可用。 我只想要一个对象变弱。 其余的依然强大。 (我要发布我的答案,所以如果没有更好的答案,我有一些可以接受的东西,但我希望有人有更好的答案。)

检查密钥存在于NSDictionary

我该如何检查是否存在? [[dataArray objectAtIndex:indexPathSet.row] valueForKey:@"SetEntries"] 我想知道这个密钥是否存在。 我怎样才能做到这一点? 非常感谢你 :) 编辑:dataArray中有对象。 而这些对象是NSDictionaries。

将NSManagedObject存储在字典(NSDictionary)

我有一个自定义类,它是NSManagedObject一个子NSManagedObject 。 我想将它存储在字典中,但是当试图这样做时,我收到一个Property list invalid for format: 200错误。 以下是我如何创build字典: NSDictionary *dictionary = [NSDictionary dictionaryWithObject: voiceMemo forKey:@"voiceMemo"]; 尝试时结果相同 NSDictionary *dictionary = [NSDictionary dictionaryWithObject: (NSData *) voiceMemo forKey:@"voiceMemo"]; 然而,当试图分别保存个别属性时,它是有效的: NSDictionary *dictionary = [NSDictionary dictionaryWithObject: voiceMemo.attribute forKey:@"attribute"]; NSDictionary应该能够存储数据对象,所以我猜,真正的问题是如何将NSManagedObject对象转换为NSData

写入文件时尝试encryptionNSDictionary

我正在保存一个NSDictionary文件在iOS设备上。 但是,NSDictionary文件是可读的XML。 我不希望人们能够进入和阅读内容,所以我需要能够在写入时encryption文件并在再次加载时解密。 我目前正在保存这样的文件: NSFileManager* fileManager = [NSFileManager defaultManager]; if (!fileManager) { NSLog(@"Failed to get file manager to save."); return; } NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* documentsDirectory = [paths objectAtIndex:0]; NSString* filePath = [documentsDirectory stringByAppendingPathComponent:@"save.dic"]; [m_dictionary writeToFile:filePath atomically:YES]; 我正在像这样加载字典: NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* documentsDirectory = [paths objectAtIndex:0]; NSString* filePath = […]

使用字典快捷方式发布参数

我试图发送数据到服务器使用字典,但不幸的是,数据没有保存到数据库(字段被发现是空白),我得到了下面的回应: 可选([“status”:true,“msg”:successfull]) 并试图向用户显示UIActivityIndicator ,直到他得到响应,但找不到方法。 代码尝试: let dict = [ "key_one": self.tf1.text!,"key_two":self.tf2.text!] do { let jsonData = try NSJSONSerialization.dataWithJSONObject(dict, options: .PrettyPrinted) // create post request let url = NSURL(string: "myAPIUrl.php?")! let request = NSMutableURLRequest(URL: url) request.HTTPMethod = "POST" // insert json data to the request request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") request.HTTPBody = jsonData let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ […]

NSDictionary命令不匹配allKeys命令

我已经按照第一个字母组织的名字创build了sorting数组的NSDictionary(见下面的结果)。 当我使用命令allKeys为同一个字典,顺序是不一样的。 我需要相同的顺序,因为这个NSDictionary在UITableview中使用,应该是按字母顺序的。 – (NSDictionary*) dictionaryNames { NSDictionary *dictionary; NSMutableArray *objects = [[NSMutableArray alloc] init]; NSArray *letters = self.exhibitorFirstLetter; NSArray *names = self.exhibitorName; for (NSInteger i = 0; i < [self.exhibitorFirstLetter count]; i++) { [objects addObject:[[NSMutableArray alloc] init]]; } dictionary = [[NSDictionary alloc] initWithObjects: objects forKeys:letters]; for (NSString *name in names) { NSString *firstLetter = […]

无法从NSDictionary中提取所需的信息

我parsing一个XML文件,parsing后得到一个NSDictionary对象(XMLDictionary命名)。 我parsing这个: <result><node><id>27</id><name>Name 1</name><type>0</type><price>0</price><img>/upload/iblock/1a1/1a138b2d4da6e42398beeb21acc8e84f.png</img></node><node><id>28</id><name>Name 2</name><type>0</type><price>0</price><img>/upload/iblock/b72/b724d1550f93987a73b04974b5f7390e.png</img></node></result> 之后,我正在尝试这个(titleArr – NSArray): _titleArr = [[[[_xmlDictionary objectForKey:@"result"] objectForKey:@"node"] objectForKey:@"name"] valueForKey:@"text"]; 在运行时,我得到这个错误在上面的行:“线程1:信号SIGABRT”。 我该如何解决这个问题?

无法将types“__NSArrayM”的值转换为“NSDictionary”

我有一个JSON,我试图用这个代码parsing,但它的说 无法将types“__NSArrayM”的值转换为“NSDictionary” do { let dataDictionary: NSDictionary = try NSJSONSerialization.JSONObjectWithData(responseObject as! NSData, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary // <—— Error if let customerArray = dataDictionary.valueForKey("cart") as? NSArray { for js in customerArray { let nameArray = js.valueForKey("name") let idArray = js.valueForKey("id") } } } 感谢您的帮助