Ios5 我如何从我的NSDirectory中取出数据(不仅仅是属性输入)?

Ios5 我如何从我的NSDirectory中取出数据(不仅仅是属性输入)?,ios5,nsdictionary,Ios5,Nsdictionary,我想我错过了一些简单的事情,但是我已经做了好几天没有解决这个问题了。甚至开始创建一个“变通方案”只是为了解决目前的问题,但仍然希望以“正确”的方式解决这个问题。有什么建议吗?谢谢你 问题: 似乎缺少类Adealer(获取错误“-[Adealer objectAtIndex:]:发送到实例0x8c5f8b0的无法识别的选择器”),但我已将Adealer.h导入此“detailsVC”但这不仅仅是一个简单的属性命名错误(objectForKey:@“CustName”而不是“CustName”等-

我想我错过了一些简单的事情,但是我已经做了好几天没有解决这个问题了。甚至开始创建一个“变通方案”只是为了解决目前的问题,但仍然希望以“正确”的方式解决这个问题。有什么建议吗?谢谢你

问题:

似乎缺少类Adealer(获取错误“-[Adealer objectAtIndex:]:发送到实例0x8c5f8b0的无法识别的选择器”),但我已将Adealer.h导入此“detailsVC”但这不仅仅是一个简单的属性命名错误(
objectForKey:@“CustName”
而不是“CustName”等-对此进行了大量测试)

此外,我还有类似的“listVC”,其中没有像Adealer这样的类,它们也以相同的方式将数据传输到相同的“detailsVC”,它们工作得很好!然后,我只需要通过如下调用获取数据:

self.labelRestName.text = [restDetails objectForKey:@"CustName"];
概述:

我得到了一个tableViewController“listVC”来创建数据并显示列表,然后是一个ViewController“detailsVC”来显示细节。数据(在“listVC”中选择的行对象通过序列和“destVC.restGPSTransfer”(NSDictionary)传输)。数据在“detailsVC”中正常到达,在终端中看起来是这样的

dealerName = Uppsala Centrum Test
dealerAdressStreet = Dragarbrunnsgatan 55
dealerAdressZip = 75320
dealerAdressCity = Uppsala
dealerLongitude = 17.63893
dealerLatitude = 59.85856
dealerDistance2 = 8586398.000000
etc

在数据之后:

“listVC”

1) 首先,通过AFJSON对象将数据从web提取到NSMutableArray“restFeed”中—确定

2) 然后将我自己的数据创建到这个循环中的一个NSMutableArray中,并将其创建到一个NSMutableArray“updatedDealers”-ok

4) 用这个数组填充一些TableViewCell,效果很好-好

    cell.cellDealerName.text = [NSString stringWithFormat:@"%@",[[_dealerFeed objectAtIndex:indexPath.row]dealerName]];
5) 在函数didSelectRowAtIndexPath中,使用“detailsVC”的NSDictionary“restGPSTransfer”-ok传递所选对象

“detailsVC”:

6) 数据传输似乎正常(见本文顶部),但在尝试调用数据时

    self.labelRestName.text = [restGPSTransfer objectForKey:@"dealerName"];
我收到此错误,应用程序崩溃:“-[Adealer objectAtIndex:]:无法识别的选择器发送到实例0x8c5f8b0”

还要做一些测试…

试图验证NSDictionary“restgpstrensfer”的结构+它的键和属性,但使用description仅能让我做到这一点。并且没有解决我的问题,我仍然得到“无法识别的选择器”错误。它可能会成为字典里的字典还是什么的

构造了这个简单的if测试,看看属性是否真的存在。但我必须“手动”检查每个属性。可能有更聪明的方法来检查NSDictionary/NSArray

if ([restGPSTransfer objectForKey:@"dealerName"]) {
    NSLog(@"= YES! key exists.");
} else {
    NSLog(@"= Nope! key don't exists");
}
感谢您在这方面的帮助:-)

更新Adaler类文件

阿德勒

#import <Foundation/Foundation.h>

@interface Adealer : NSObject
@property (nonatomic, retain) NSString * dealerName;        
@property (nonatomic, retain) NSString * dealerAdressCity;
@property (nonatomic, retain) NSString * dealerAdressStreet;
@property (nonatomic, retain) NSString * dealerAdressZip;   
@property (nonatomic, retain) NSNumber * dealerID;
@property (nonatomic, retain) NSString * dealerImages;      
@property (nonatomic, retain) NSString * dealerLogo;        
@property (nonatomic, retain) NSString * dealerMail;        
@property (nonatomic, retain) NSString * dealerProducts;    
@property (nonatomic, retain) NSString * dealerTel;         
@property (nonatomic, retain) NSString * dealerText;    
@property (nonatomic, retain) NSString * dealerWeb; 
@property (nonatomic, retain) NSString * dealerLongitude;   
@property (nonatomic, retain) NSString * dealerLatitude;    
@property (nonatomic, retain) NSString *dealerDistance; 
@property float dealerDistance2;
@end
解决了 如果其他人需要,请在此处发布

解决方案

在我的“detailsVC”中,我首先做了这个iVar声明

.h:

.m:

然后在我的“listVC”中,我这样做是为了将Adealer对象及其属性传输到“detailsVC”(记住,Adealer对象在前面描述的“循环”中已经获得了它的属性)

而不是我以前的

destVC.restGPSTransfer = [_dealerFeed objectAtIndex:myIndexPath.row];
我把它改成了

destVC.theDealer = [_dealerFeed objectAtIndex:myIndexPath.row];
为了在“detailsVC”中实际显示和检查转让的财产,我现在可以简单地调用它来获取经销商名称(或任何其他财产)


很好!大家好

有人吗?真的被这件事缠住了。。。谢谢刚刚更新了Adealer类文件并将其添加到我的问题中,以使其更加清晰,我希望…当我在“detailsVC”中称之为“detailsVC”时NSLog(@“restGPSTransfer(NSDictionary)类=%@,内容=%@,[restGPSTransfer类],[restGPSTransfer描述];”我明白了restgpstreasfer(NSDictionary)class=Adealer,content=theDealer对象及其属性:dealerName=Uppsala Centrum Test dealeradratorescity=Uppsala'等,但我无法在这样的调用中访问属性;'self.labelRestName.text=[restgpster objectForKey:@“dealerName”];'它崩溃:“-[Adealer objectForKey:]:发送到实例0x8a92db0的选择器无法识别”
#import <Foundation/Foundation.h>

@interface Adealer : NSObject
@property (nonatomic, retain) NSString * dealerName;        
@property (nonatomic, retain) NSString * dealerAdressCity;
@property (nonatomic, retain) NSString * dealerAdressStreet;
@property (nonatomic, retain) NSString * dealerAdressZip;   
@property (nonatomic, retain) NSNumber * dealerID;
@property (nonatomic, retain) NSString * dealerImages;      
@property (nonatomic, retain) NSString * dealerLogo;        
@property (nonatomic, retain) NSString * dealerMail;        
@property (nonatomic, retain) NSString * dealerProducts;    
@property (nonatomic, retain) NSString * dealerTel;         
@property (nonatomic, retain) NSString * dealerText;    
@property (nonatomic, retain) NSString * dealerWeb; 
@property (nonatomic, retain) NSString * dealerLongitude;   
@property (nonatomic, retain) NSString * dealerLatitude;    
@property (nonatomic, retain) NSString *dealerDistance; 
@property float dealerDistance2;
@end
#import "Adealer.h"
@implementation Adealer
@synthesize dealerAdressCity, dealerAdressStreet, dealerAdressZip, dealerID, dealerImages, dealerLogo;
@synthesize dealerMail, dealerName, dealerProducts, dealerTel, dealerText, dealerWeb;
@synthesize dealerLongitude, dealerLatitude, dealerDistance,dealerDistance2;
- (NSString *)description {
// Added extension of description

NSMutableString *string = [NSMutableString string];

[string appendString:@"\ntheDealer object and it's properties:\n"];

[string appendFormat:@"dealerName = %@\n", dealerName];
[string appendFormat:@"dealerAdressStreet = %@\n", dealerAdressStreet];
[string appendFormat:@"dealerAdressZip = %@\n", dealerAdressZip];
[string appendFormat:@"dealerAdressCity = %@\n", dealerAdressCity];

[string appendFormat:@"dealerTel = %@\n", dealerTel];
[string appendFormat:@"dealerMail = %@\n", dealerMail];
[string appendFormat:@"dealerWeb = %@\n", dealerWeb];

[string appendFormat:@"dealerLogo = %@\n", dealerLogo];
[string appendFormat:@"dealerImages = %@\n", dealerImages];
[string appendFormat:@"dealerText = %@\n", dealerText];
[string appendFormat:@"dealerProducts = %@\n", dealerProducts];

[string appendFormat:@"dealerLongitude = %@\n", dealerLongitude];
[string appendFormat:@"dealerLatitude = %@\n", dealerLatitude];
[string appendFormat:@"dealerDistance = %@\n", dealerDistance];
[string appendFormat:@"dealerDistance2 = %f\n\n", dealerDistance2];
return string;
}
@end
Adealer *theDealer;
@property (nonatomic, retain) Adealer *theDealer;
@synthesize theDealer;
destVC.restGPSTransfer = [_dealerFeed objectAtIndex:myIndexPath.row];
destVC.theDealer = [_dealerFeed objectAtIndex:myIndexPath.row];
self.labelRestName.text = theDealer.dealerName;
NSLog(@"theDealer.name = %@",theDealer.dealerName);