私はここで立ち往生しています。私はiOSを新しくしています。Objective cの `isKindOfClass([NSString] class)`のデータを解析する方法
今私はdict
のデータを持っていますが、クラス形式は異なります。それがNSDictionary
フォーマットであればそれはうまく動作し、すべてのデータを解析します&正しく表示します。
今度はJSON
がNSDictionaryを返しますが、&は時々NSStringを返します。 NSDictionary
@interface demoActivityDetails()
@property (strong ,nonatomic) NSArray *activityDescription;
@end
@implementation demoActivityDetails
- (instancetype)initWithDict:(NSDictionary *)dict{
self = [super init];
if (self) {
if ([dict isKindOfClass:[NSString class]]) {
NSLog(@"String");
//I'm stuck over here, don't know how do I parse data if it is NSString class
}
else if ([dict isKindOfClass:[NSDictionary class]]) {
if ([[dict valueForKey:@"demoActivityTypeCode"] valueForKey:@"value"]) {
self.demoActivityTypeCode = [[dict valueForKey:@"demoActivityTypeCode"] valueForKey:@"value"];
}
if ([[[dict valueForKey:@"cityOfActivity"] valueForKey:@"cityCode"] valueForKey:@"value"]) {
self.cityOfOrigin = [[[dict valueForKey:@"cityOfActivity"] valueForKey:@"cityCode"] valueForKey:@"value"];
}
if ([[[dict valueForKey:@"cityOfActivity"] valueForKey:@"cityySubdivisionCode"] valueForKey:@"value"]) {
self.citySubdivisionCodeArray = [[[dict valueForKey:@"cityOfActivity"] valueForKey:@"citySubdivisionCode"] valueForKey:@"value"];
}
if ([dict valueForKey:@"activityDescription"]) {
self.activityDescription = [dict valueForKey:@"activityDescription"];
}
if ([self.activityDescription isKindOfClass:[NSArray class]]) {
if ([self.activityDescription valueForKey:@"languageCode"]) {
self.flagsArray = [self.activityDescription valueForKey:@"languageCode"];
}
if ([self.activityDescription valueForKey:@"value"]) {
self.subTitleArray = [self.activityDescription valueForKey:@"value"];
}
if (self.flagsArray && self.subTitleArray) {
self.subTitleWithLangCode = [[NSMutableDictionary alloc] initWithObjects:self.subTitleArray forKeys:self.flagsArray];
}
if ([self.flagsArray containsObject:@"en"]) {
for (int i=0 ; i < self.flagsArray.count; i++) {
if ([self.flagsArray[i] isEqualToString:@"en"]) {
self.subTitle = [self.subTitleArray objectAtIndex:i];
self.selectedFlag = [self.flagsArray objectAtIndex:i];
}
}
}else {
self.subTitle = [self.subTitleArray firstObject];
self.selectedFlag = [self.flagsArray firstObject];
}
}
else if ([self.activityDescription isKindOfClass:[NSString class]]) {
self.subTitle = (NSString *)self.activityDescription;
}
}
}
}
return self;
}
@end
誰かが私を助けてください:
ベローは、JSONデータを読み込むことがKindOfClassで、コードです。
からクラス名を開始あなたがNSStringでデータを受け取ったとき、これは@ "{\" demoActivityTypeCode \ ":{value" \:1}、\ "cityOfActivity \":{\ "cityCode:201 \"} \ "ContractTemplateID \":{\ "Content \":65、\ "type \":\ "text \"}} " –
いいえ、json形式と似ています。 – aadityaa
{ activityDescription = { languageCode = en; 値= "アクティビティDescription_en"; }; cityOfActivity = { cityCode = { 値= 012; }; citySubdivisionCode = { value = "CA"; }; }; demoActivityTypeCode = { value = "SampleText"; }; } – aadityaa