标签: nsdictionary

帮助解析嵌套的JSON对象

我有以下JSON:

{
    "meta": {
        "code": 200
    }, 
    "response": {
        "deals": [
            {
                "id": 32373, 
                "date_added": "2011-01-13 12:12:50", 
                "end_date": "2011-01-14 10:00:00", 
                "active": 1, 
                "discount": {
                    "raw": 71, 
                    "formatted": "71%"
                }, 
                "price": {
                    "raw": "85.00", 
                    "formatted": "$85"
                }, 
                "value": {
                    "raw": "300.00", 
                    "formatted": "$300"
                }, 
                "purchased": 82, 
                "left": null, 
                "title": "$85 For $300 Babyface Facial At Park Avenue MedSpa", 
                "yipit_title": "71% off Babyface Facial", 
                "url": "http://yipit.com/aff/click/?deal=AvwTADtE&key=F374EFbM", 
                "yipit_url": "http://yipit.com/new-york/livingsocial/85-for-300-babyface-facial-at-park-avenue-medspa/", 
                "images": {
                    "image_big": "http://d22nv2k05ynu7x.cloudfront.net/deal_images/deal/85-for-300-babyface-facial-at-park-avenue-medspa-1294920769_display_image.jpg", 
                    "image_small": "http://d22nv2k05ynu7x.cloudfront.net/deal_images/deal/85-for-300-babyface-facial-at-park-avenue-medspa-1294920769_small_image.jpg"
                }, 
                "division": {
                    "slug": "new-york", 
                    "name": "New …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch json objective-c nsdictionary

3
推荐指数
1
解决办法
3733
查看次数

保存UIImagePicker视频

我搜索并搜索但找不到基本的UIImagepicker视频保存代码.我已经完成了所有设置并且只是空白.

- (void)imagePickerController:(UIImagePickerController *)
         picker didFinishPickingMediaWithInfo:(NSDictionary *)
              info{
}
Run Code Online (Sandbox Code Playgroud)

我知道它与字典有关,但在那之后我迷路了,有什么帮助吗?

video save nsdictionary uiimagepickercontroller

3
推荐指数
1
解决办法
2514
查看次数

在NSMutableArray中的NSDictionary上的sortUsingComparator,带有多个objectKeys

我正在尝试对NSDictionaries的mutableArray进行排序,目前我可以通过使用一个objectForKey值进行排序来实现这一点,但是这个问题是很多这些值可以是相同的所以我需要让另一个objectForKey来对数组进行排序.我想知道,如果第一个objectForKey比较返回一个相同的值,我怎么能进行第二个objectForKey比较,依此类推......

目前我正在这样做,这有效..但显然只有一个键.

[dataArrayOfDictionaries sortUsingComparator:^ NSComparisonResult(NSDictionary *d1, NSDictionary *d2)
    {
        NSString *n1 = [d1 objectForKey:@"DESCRIPTION"];
        NSString *n2 = [d2 objectForKey:@"DESCRIPTION"];
        return [n1 localizedCompare:n2];
    } ];
Run Code Online (Sandbox Code Playgroud)

在我的调查中,我试过这个 -

[dataArrayOfDictionaries sortUsingComparator:^ NSComparisonResult(NSDictionary *d1, NSDictionary *d2)
{
    NSString *n1 = [d1 objectForKey:@"DESCRIPTION"];
    NSString *n2 = [d2 objectForKey:@"DESCRIPTION"];
    return [n1 localizedCompare:n2];
    n1 = [d1 objectForKey:@"ID"];
    n2 = [d2 objectForKey:@"ID"];
    return [n1 localizedCompare:n2];

} ];
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用,因为它对描述排序然后完全使用基于ID,我想要它如果描述键是相同的然后通过ID键对这些值进行排序..如果这不起作用然后下去的列表键直到它排序..我希望这是有道理的..任何帮助将非常感激.

iphone nsdictionary nsmutablearray ios

3
推荐指数
1
解决办法
2369
查看次数

将实例变量初始化为NSDictionary的键/值对?

我将我的NSObject子类的公共接口定义为,

@interface MyObject : NSObject
{
    NSString *_key1;
    NSString *_key2;
    NSString *_key3;
}
- (id)initWithDict:(NSDictionary *)dict;
@end
Run Code Online (Sandbox Code Playgroud)

是否有技巧来实现initWithDict:方法,以便我可以传递定义为的NSDictionary

{"key1":"value1","key2":"value2","key3":"value3"}

并且init方法可以设置相关的实例变量及其对应的"值"?

initialization objective-c nsdictionary nsobject kvc

3
推荐指数
1
解决办法
2万
查看次数

从NSMutable数组中删除重复的valuse

我试图从我的排序数组中删除任何重复...我想我可以使用我的另一个问题的一个例子,但事实证明甚至没有接近工作.

这是一个非常糟糕的尝试,但它是我能弄清楚如何在NSMutableArray中比较单个项目(NSDictionary)的两个元素的唯一方法.

这是我的代码示例

我目前有一个排序数组

 NSArray *duplicatesRemovedArray = [sortedArray sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
        NSDictionary *dictA = a;
        NSDictionary *dictB = b;

        NSString *startYear1 = dictA[kStartYear];
        NSString *finishYear1 = dictA[kFinishYear];
        NSString *allYear1 = [NSString stringWithFormat:@"%@%@",startYear1, finishYear1];
        NSString *startYear2 = dictB[kStartYear];
        NSString *finishYear2 = dictB[kFinishYear];
        NSString *allYear2 = [NSString stringWithFormat:@"%@%@",startYear2, finishYear2];

        return [allYear1 compare:allYear2];

    }];
Run Code Online (Sandbox Code Playgroud)

如果有人对如何创建我所追求的独特项目的NSArray有任何想法,如果你能给我任何建议,代码示例将非常感激

更新:我应该指出我的NSDictionary中有另一个元素ID ...

所以我不能只比较你列出的例子中的对象......这对我来说是一种疏忽.因此,有效的对象看起来像这样

ID: 1234
STARTYEAR: 1999
FINISHYEAR: 2000
Run Code Online (Sandbox Code Playgroud)

所以我需要一些帮助删除对象,其中StartYear和FinishYear匹配其他对象的开始和结束年份.

objective-c nsdictionary nsarray

3
推荐指数
1
解决办法
2729
查看次数

使用nspredicate过滤带字典的数组失败

我正在尝试使用谓词从NSMutableArray中获取NSDictionary:

NSMutableArray *arr = [NSMutableArray arrayWithArray:[self createArrayFromCSV:savedCSV withDelimiter:delim firstLineContainsKeys:YES]];

// The method «createArrayFromCSV returns an array of dictionaries

NSLog(@"Array %@", [arr objectAtIndex:0]);  // works fine

// spits out: 

// Array {
//     product = "MyProduct";
//     "id_product" = 29;
// }

// idField and idVal are passed to the method

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(%@ == %@)", idField, idVal];

NSLog(@"predicate %@", predicate);

// spits out predicate "id_product" == "29"

NSArray *filtered = [arr filteredArrayUsingPredicate:predicate];

NSLog(@"Filtered %@", filtered);

// Filtered is …
Run Code Online (Sandbox Code Playgroud)

cocoa nsdictionary nsarray nspredicate

3
推荐指数
1
解决办法
3603
查看次数

NSDictionary中只有属性列表对象(NSNumber),但不能在UserDefaults中存储dict

我有一个NSDictionary与NSNumbers作为值和键.这些数字代表应用程序中的某些设置,我想将字典存储在UserDefaults中.由于NSNumbers是属性列表对象,我认为这应该工作,但我检索以下错误:

*** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '{ 2 = 1; }' of class '__NSDictionaryM'. Note that dictionaries and arrays in property lists must also contain only property values.

我使用的(简化)测试代码是:

NSNumber *one = [NSNumber numberWithInt:1];
NSNumber *two = [NSNumber numberWithInt:2];
NSDictionary *defaultSetting = [[NSDictionary alloc] initWithObjectsAndKeys: one, two, nil];
[[NSUserDefaults standardUserDefaults] setObject:defaultSetting forKey:@"settings"];
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我不明白它有什么问题吗?

谢谢你的时间和回复.

nsdictionary nsuserdefaults nsnumber

3
推荐指数
1
解决办法
1363
查看次数

使用谓词在数组中搜索字典

我有一系列字典,我想找到具有键"guid"所需值的字典.无法使用此代码获取:

NSPredicate *filter = [NSPredicate predicateWithFormat:@"guid = %@", key];
NSArray *filteredContacts = [selectedValue filteredArrayUsingPredicate:filter];
Run Code Online (Sandbox Code Playgroud)

arrays iphone predicate nsdictionary ios

3
推荐指数
1
解决办法
5003
查看次数

通过NSString过滤字典数组

在实现搜索功能时,我需要过滤字典数组.我正在使用自动完整的文本字段方法搜索栏并将其存储到字符串中.我能够解析数组,但面对下面的json

[{"CertProfID":"4","Name":"Dodge","Location":"loc4","City":"city4","State":"state4","Zip":"zip5","Website":"http:\/\/cnn.com","Phone":"phone4","Email":"email4"},
{"CertProfID":"5","Name":"cat","Location":"loc5","City":"city5","State":"State5","Zip":"zip5","Website":"web5","Phone":"phone5","Email":"email5"}]
Run Code Online (Sandbox Code Playgroud)

在这里,我需要过滤字典以使其完成

我尝试使用下面的代码但其返回的数组具有空值:(

 NSString *substring = [NSString stringWithString:textField.text];
  NSLog(@"substring %@",substring);
  NSMutableArray *arr2Filt= [arraylist valueForKey:@"Name"];
  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF  contains[c] %@",substring];
  filteredarr = [NSMutableArray arrayWithArray:[arr2Filt filteredArrayUsingPredicate:predicate]];
Run Code Online (Sandbox Code Playgroud)

json objective-c nsdictionary nsarray ios

3
推荐指数
1
解决办法
6419
查看次数

快速从NSDictionary读取数据

我正在使用此代码从读取数据NSDictionary

let itemsArray: NSArray = response.objectForKey("items") as! NSArray;
let nextPageToken: String = response.objectForKey("nextPageToken") as! String

var videoIdArray: [String] = []

for (item) in itemsArray {
      let videoId: String? = item.valueForKey("id")!.valueForKey("videoId") as? String
      videoIdArray.append(videoId!)
}
Run Code Online (Sandbox Code Playgroud)

但是,当我items还是nextPageToken不存在,我得到这个错误:

fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?我该如何解决?

iphone json nsdictionary ios swift

3
推荐指数
1
解决办法
2万
查看次数