我有以下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) 我搜索并搜索但找不到基本的UIImagepicker
视频保存代码.我已经完成了所有设置并且只是空白.
- (void)imagePickerController:(UIImagePickerController *)
picker didFinishPickingMediaWithInfo:(NSDictionary *)
info{
}
Run Code Online (Sandbox Code Playgroud)
我知道它与字典有关,但在那之后我迷路了,有什么帮助吗?
我正在尝试对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键对这些值进行排序..如果这不起作用然后下去的列表键直到它排序..我希望这是有道理的..任何帮助将非常感激.
我将我的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方法可以设置相关的实例变量及其对应的"值"?
我试图从我的排序数组中删除任何重复...我想我可以使用我的另一个问题的一个例子,但事实证明甚至没有接近工作.
这是一个非常糟糕的尝试,但它是我能弄清楚如何在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匹配其他对象的开始和结束年份.
我正在尝试使用谓词从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) 我有一个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)
为什么这不起作用?我不明白它有什么问题吗?
谢谢你的时间和回复.
我有一系列字典,我想找到具有键"guid"所需值的字典.无法使用此代码获取:
NSPredicate *filter = [NSPredicate predicateWithFormat:@"guid = %@", key];
NSArray *filteredContacts = [selectedValue filteredArrayUsingPredicate:filter];
Run Code Online (Sandbox Code Playgroud) 在实现搜索功能时,我需要过滤字典数组.我正在使用自动完整的文本字段方法搜索栏并将其存储到字符串中.我能够解析数组,但面对下面的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) 我正在使用此代码从读取数据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)
知道为什么吗?我该如何解决?
nsdictionary ×10
ios ×4
iphone ×4
objective-c ×4
json ×3
nsarray ×3
arrays ×1
cocoa ×1
cocoa-touch ×1
kvc ×1
nsnumber ×1
nsobject ×1
nspredicate ×1
predicate ×1
save ×1
swift ×1
video ×1