Tag: nsdictionary

错误将NSarray分割成部分

好吧,所以我一直在通过一个与我正在尝试实现的密切匹配的示例,唯一的区别是,在他直接从数据库中调用他需要分段的数据等例子中,因为我已经有一个sortingNSArray的。 这是我正在工作的教程 – iPhone开发:创build本地联系人,如屏幕 我已经创build了一个方法,它捕获NSArray中的每个条目,并将这些结果放入一个基于alpha的NSDictionary(所以它们将成为A,B,C等的NSDictionary) 这是我的方法。 //method to sort array and split for use with uitableview Index – (IBAction)startSortingTheArray:(NSMutableArray *)arrayData { //Sort incoming array alphabetically //sortedArray = [arrayData sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; [self setSortedArray:[arrayData sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]]; arrayOfCharacters = [[NSMutableArray alloc]init]; objectsForCharacters = [[NSMutableDictionary alloc]init]; for(char c='A';c<='Z';c++) { if([sortedArray count] >0) { [arrayOfCharacters addObject:[NSString stringWithFormat:@"%c",c]]; [objectsForCharacters setObject:sortedArray forKey:[NSString stringWithFormat:@"%c",c]]; NSLog(@"%@", […]

迭代NSDictionary并将其保存到对象types的数组中

正如标题所说,我想遍历NSDictionary并将单个条目保存到对象types的数组中。 我目前正在努力读出NSDictionary的单个条目,因为我不能简单地用entry [index]调用它们并向上计数。 我有一个名为“客户”的本地JSON文件,我很快就进入了。 该文件如下所示: { "clients": [ { "id": 3895, "phone": 0787623, "age" : 23, "customerSince" : 2008 }, { "id": 9843, "phone": 7263549, "age" : 39, "customerSince" : 2000 }, { "id": 0994, "phone": 1093609, "age" : 42, "customerSince" : 1997 } ] } 我做了什么? 我创build了一个类ClientObject,看起来像这样: import Foundation class ClientObjects{ var id : […]

如何将值添加到属性列表的字典中的字典

我目前正在为我的plist.in plist创build一个控制器类,我有一个根字典,它有几个types(数字,string和字典),在我的控制器类我检查一个plist然后将其添加到文档,所以我可以读写它。 从这里我读了我现在的plist里的什么东西,把这些价值转嫁给我在这堂课里设定的临时演员。 这是我的读取方法在我的plist控制器类中的样子。 -(void) readPlistData { // Data.plist code // get paths from root direcory NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); // get documents path NSString *documentsPath = [paths objectAtIndex:0]; // get the path to our Data/plist file NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"EngineProperties.plist"]; // check to see if Data.plist exists in documents if […]

迭代时是否可以从mutablearray中删除字典?

for (int i = 0; i< [optionDataArr count]; i++) { NSString *sName = [[optionDataArr objectAtIndex:i] objectForKey:kOptionName]; NSString *sPrice = [[optionDataArr objectAtIndex:i] objectForKey:kOptionExtraPrice]; if (sName.length == 0 && sPrice.length == 0) { [optionDataArr removeObjectAtIndex:i]; } } 假设optionDataArr包含一个没有值的字典,当上面的代码执行时,我收到: Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'

无法绕过parsing嵌套的JSON

我很难在这里find我的头: 所以我有以下JSON: "posts": [ { "id": 42400, "type": "post", "url": "http://dummy.com/noticias/2014/06/senado-promulga-emenda-contra-trabalho-escravo-42400/", "status": "publish", "title": "Lorem ipsum dolor sit amet, consectetur adipisicing elit", "title_plain": "Lorem ipsum dolor sit amet, consectetur adipisicing elit", "content": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>", "excerpt": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>", "date": "2014-06-05 16:59:55", "modified": "2014-06-05 17:00:42", […]

共享不可变的NSString

我有一个约10k字典的列表,每个字典包含约50个密钥。 所有字典的键都差不多。 数据使用NSDictionary.alloc.initWithContentsOfFile加载。 看来,关键的对象是不同的字典之间重用,因此,而不是有大约500K的string在内存中,我只有一个string每个唯一的关键,因此只有几百个。 所以我想知道是否initWithContentsOfFile方法的预期行为,我可以依靠它,或者有一些情况下,我会在不同的字典中的相同的键获取不同的string对象?

使用NSPredicate只能从字典数组中获取特定键的值

我不知道价值。 我只知道关键。 arrTripCat : ( { tripcategory = "general_tourism"; }, { tripcategory = nightlife; }, { tripcategory = "art_museums"; }, { tripcategory = nightlife; }, { tripcategory = architecture; }, { tripcategory = nightlife; } ); 我试过的NSPredicate : NSArray *arrTripCat = [NSArray arrayWithArray:[self.dictSearchResult objectForKey:@"TripCategories"]]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY SELF.@allKeys contains[cd] %@",@"tripcategory"]; NSMutableArray *filteredArray = […]

使用NSXMLParserparsing复杂的XML结构

我有这个相当复杂的XML从我的服务器返回,我想一些帮助parsing成一个对象,我可以为以后使用。 这是xml的样子 <Eng> <Result > <Series > <Link/> <FMF/> <AlsoLink/> <Plugins/> </FMF> <Sheet > <Spaces> <Spacing > <Names/> </Spacing> <Spacing > <Names/> </Spacing> </Spaces> </Sheet> </Series> </Result> </Eng> 然后,我使用NSXMLParser尝试parsingxml中每个元素的所有“ObjectForKey / s”到他们自己的dictionarys ..如果这是有道理的。 这是我的代码目前看起来像 #pragma mark – Parsing lifecycle – (void)startTheParsingProcess:(NSData *)parserData { NSXMLParser *parser = [[NSXMLParser alloc] initWithData:parserData]; //parserData passed to NSXMLParser delegate which starts […]

sorting在nsdictionary上给出不同的结果比在nsarraysorting

2天前我问了如何通过string对象中的第二个字sorting元素的问题 我在这里得到解决scheme 但现在我陷入了新的问题 考虑我有 nsarray与 – >名称和 nsdictionary使用相同的名称(nsarray)作为键值和电子邮件ID 而我的nsarray包含 "Test Teacher" "Anonymous" "Dok Teacher" 和我的nsdictionary包含 "Dok Teacher" –"a@g.com" "Anonymous" — "b@g.com" "Test Teacher" –"c@g.com" 因为我需要sorting这些数组和字典我使用上面的链接给出的方法sorting 但sorting后,我得到的数据如下 nsarraysorting第二个单词后 "Anonymous" "Test Teacher" "Dok Teacher" 在对值的第二个字进行sorting之后的nsdictionary "Anonymous" — "b@g.com" "Dok Teacher" –"a@g.com" "Test Teacher" –"c@g.com" 为什么老师和testing老师在词典和nsarray中的不同位置,使用同样的方法进行sorting。 以及如何让它们以相同的顺序排列和字典。 代码sortingnsarray: NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:[teachersNames sortedArrayUsingComparator:^NSComparisonResult(id a, id b) { […]

在已sorting的UITableViewCell上添加来自MySQL数据库的图像

我是Xcode和Objective-C的新手,我想要制作一个按字母顺序sorting的联系人列表也有图片。 请检查这个参考。 这段代码告诉我我需要的一切,但问题是我使用MySQL的名称和图像,而不是像这样的硬编码。 我已经将数据导入NSDictionary,这是结果: audiences=({name="ABDUL",id="1",photo="asd.png"},{name="ABDUL",id="2",photo="qwe.png"}); 我需要做什么来添加名称和照片(只有2项,没有ID)到UITableViewCell? 我以前使用过这个代码,但只显示sorting的名称,我不知道如何调用图像。 这是我parsing的名字,所以我可以抓住它的名单: NSMutableDictionary* audict = [NSMutableDictionary dictionary]; for (NSDictionary* person in dataDict[@"audience"]){ NSString* name = person[@"name"]; if (![name length]) continue; NSRange range = [name rangeOfComposedCharacterSequenceAtIndex:0]; NSString* key = [[name substringWithRange:range] uppercaseString]; NSMutableArray* list = audict[key]; if (!list){ list = [NSMutableArray array]; [audict setObject:list forKey:key]; } [list addObject:name]; audiences=audict; audienceSectionTitles […]