Iphone iOS向NSDictionary添加对象并访问NSDictionary中的对象
我想将对象添加到nsdictionary并访问这些对象或修改对象中的属性,但在获取它们时遇到困难 例如:Iphone iOS向NSDictionary添加对象并访问NSDictionary中的对象,iphone,ios,objective-c,nsdictionary,nsmutabledictionary,Iphone,Ios,Objective C,Nsdictionary,Nsmutabledictionary,我想将对象添加到nsdictionary并访问这些对象或修改对象中的属性,但在获取它们时遇到困难 例如: ObjectClass: -(id)init { self = [super init]; if (self) { self.firstName = @""; self.lastName = @""; } return self; } mainClass: ObjectClass *myObjec
ObjectClass:
-(id)init
{
self = [super init];
if (self)
{
self.firstName = @"";
self.lastName = @"";
}
return self;
}
mainClass:
ObjectClass *myObject = [ObjectClass allo] init];
NSMutableDictionary *listOfClients = [NSMutableDictionary allo] init];
[self.listOfClients setObject:myObject forKey:@"firstClient"];
(lldb) po [listOfClients valueForKey:@"firstClient"]
$5 = 0x0683e140 <myObject: 0x683e140>
(lldb) po [_testDic valueForKey:@"firstClient.myObject"]
$6 = 0x00000000 <nil>
ObjectClass:
-(id)init
{
self=[super init];
如果(自我)
{
self.firstName=@”;
self.lastName=@”;
}
回归自我;
}
主要类别:
ObjectClass*myObject=[ObjectClass allo]init];
NSMutableDictionary*ListofClient=[NSMutableDictionary allo]init];
[self.listofClient setObject:myObject-forKey:@“firstClient”];
(lldb)采购订单[客户价值清单如下:@“第一客户”]
$5=0x0683e140
(lldb)po[_testdicvalueforkey:@“firstClient.myObject”]
$6=0x00000000
例如,如何访问firstClient的名字
非常感谢您的帮助首先,您的
客户端列表
局部变量和属性出现命名冲突。试着这样做:
self.listOfClients = [[NSMutableDictionary alloc] init];
ObjectClass *myObject = [[ObjectClass alloc] init];
myObject.firstName = @"John";
myObject.lastName = @"Smith";
self.listOfClients[@"firstClient"] = myObject;
ObjectClass *obj = (ObjectClass *)self.listOfClients[@"firstClient"];
NSLog(@"Name: %@ %@", obj.firstName, obj.lastName);
这将完成初始化字典和对象,并将对象放入字典中。然后,您可以通过以下方式访问该项目:
self.listOfClients = [[NSMutableDictionary alloc] init];
ObjectClass *myObject = [[ObjectClass alloc] init];
myObject.firstName = @"John";
myObject.lastName = @"Smith";
self.listOfClients[@"firstClient"] = myObject;
ObjectClass *obj = (ObjectClass *)self.listOfClients[@"firstClient"];
NSLog(@"Name: %@ %@", obj.firstName, obj.lastName);
我非常想念这个:
[ListofClient valueForKeyPath:@“firstClient.lastName”] 在您的示例中,如何在同一字典中添加第二个客户端?创建另一个对象,例如
obj2
。然后执行相同的操作:self.listofClient[@“secondClient”]=obj2
。这有用吗?如果你能更全面地描述你想做什么,也许会更有帮助。这种设置似乎有点尴尬,因此可能有更好的方法来实现您的最终目标。