如何在Objective-C中获取给定对象属性的列表(以NSArray或的形式NSDictionary)?
想象一下以下场景:我已经定义了一个只扩展的父类NSObject,它将a NSString,a BOOL和一个NSData对象作为属性.然后我有几个扩展这个父类的类,每个类都添加了许多不同的属性.
有没有什么方法可以在父类上实现一个遍历整个对象的实例方法,然后返回NSArray每个(子)类属性的一个,因为NSStrings它不在父类上,所以我以后可以使用这些NSString对于KVC?
你好我是一个NSObject类的类:
ProductDetails *details = [[ProductDetails alloc] init];
details.name = @"Soap1";
details.color = @"Red";
details.quantity = 4;
Run Code Online (Sandbox Code Playgroud)
我想将"details"对象传递给字典.
我做到了,
NSDictionary *dict = [NSDictionary dictionaryWithObject:details forKey:@"details"];
Run Code Online (Sandbox Code Playgroud)
我将此dict传递给另一个执行JSONSerialization检查的方法:
if(![NSJSONSerialization isValidJSONObject:dict])
Run Code Online (Sandbox Code Playgroud)
我在这张支票上遇到了崩溃.我在这里做错了吗?我知道我得到的细节是一个JSON对象,我将它分配给我的ProductDetails类中的属性.
请帮我.我是Objective-C的菜鸟.
我现在试过:
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:(NSData*)details options:kNilOptions error:&error];
Run Code Online (Sandbox Code Playgroud)
我需要的只是将细节转换为NSData的简单方法.
我注意到我的对象里面有一个数组可能就是为什么我尝试的所有方法都抛出异常.然而,由于这个问题变得越来越大,我已经开始了另一个问题线程,在那里我显示了我在对象中获取的数据 - /sf/ask/1335677311/
任何人都知道如何基于NSObject类序列化嵌套的JSON?有序列化JSON简单的讨论在这里,但它不是通用的,足以应付复杂的嵌套JSON.
想象一下这是JSON的结果:
{ "accounting" : [{ "firstName" : "John",
"lastName" : "Doe",
"age" : 23 },
{ "firstName" : "Mary",
"lastName" : "Smith",
"age" : 32 }
],
"sales" : [{ "firstName" : "Sally",
"lastName" : "Green",
"age" : 27 },
{ "firstName" : "Jim",
"lastName" : "Galley",
"age" : 41 }
]}
Run Code Online (Sandbox Code Playgroud)
从这堂课:
@interface Person : NSObject{}
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSNumber *age;
@end
@interface Department : NSObject{} …Run Code Online (Sandbox Code Playgroud) objective-c ×3
attributes ×1
class ×1
generics ×1
ios ×1
ios6 ×1
json ×1
jsonkit ×1
nsdictionary ×1
properties ×1