Ios 如何进行json类型响应?
我有一个收集视图,我必须显示来自后端的图像和视频。我是个新手,我从后端得到了这个响应Ios 如何进行json类型响应?,ios,objective-c,image,video,uicollectionview,Ios,Objective C,Image,Video,Uicollectionview,我有一个收集视图,我必须显示来自后端的图像和视频。我是个新手,我从后端得到了这个响应 SliderList = ( { SliderID = 1; SliderType = 1; SliderURL = "http://mca.bananaappscenter.com/Images/SliderImages/MaskGroup2.png"; Status = 1; },
SliderList = (
{
SliderID = 1;
SliderType = 1;
SliderURL = "http://mca.bananaappscenter.com/Images/SliderImages/MaskGroup2.png";
Status = 1;
},
{
SliderID = 2;
SliderType = 1;
SliderURL = "http://mca.bananaappscenter.com/Images/SliderImages/MaskGroup3.png";
Status = 1;
},
{
SliderID = 3;
SliderType = 2;
SliderURL = "https://www.youtube.com/watch?v=l1yN0KUHgoc";
Status = 1;
}
);
}
我确实喜欢这个
NSMutableDictionary *sampleDict = [ImagesArray objectAtIndex:indexPath.row];
NSString *imageStr = [[NSString alloc]init];
imageStr = [sampleDict valueForKey:@"SliderURL"];
if([imageStr isEqualToString:@"1"] || imageStr == nil)
{
cell.addImageView.image = [UIImage imageNamed:@""];
}
else
{
[cell.addImageView sd_setImageWithURL:[NSURL URLWithString:imageStr]
placeholderImage:[UIImage imageNamed:@"default"]];`
}
以上仅适用于即将发布的图像。如有任何答复,将不胜感激。提前感谢。我从问题和您在聊天中的扩展讨论中了解到,您在手机中显示视频和图像时遇到了麻烦。为了显示视频和图像,您需要使用不同的方法
- 您需要做的第一件事是找到这是视频URL还是图像。最好的方法是通过在web服务中添加一个参数来隔离它,该参数指示这是图像还是视频
- 一旦这是出了系统,你将需要一个特殊的看法,可以加载视频完美我用过,它的作品很好
- 现在,在单元格中添加
和video player view,并添加一个条件,在此条件下,您可以检查它是否是视频,然后根据返回的信息显示imageView
或imageViewYTPlayerView
+ (NSString *)extractYoutubeIdFromLink:(NSString *)link {
if (link == nil) nil;
NSString *regexString = @"((?<=(v|V)/)|(?<=be/)|(?<=(\\?|\\&)v=)|(?<=embed/))([\\w-]++)";
NSRegularExpression *regExp = [NSRegularExpression regularExpressionWithPattern:regexString
options:NSRegularExpressionCaseInsensitive
error:nil];
NSArray *array = [regExp matchesInString:link options:0 range:NSMakeRange(0,link.length)];
if (array.count > 0) {
NSTextCheckingResult *result = array.firstObject;
return [link substringWithRange:result.range];
}
return nil;
}
//Write this line on your function where you want to load video
[_videoView loadWithVideoId:[SCUtility extractYoutubeIdFromLink:_videoURL]];
+(NSString*)extractYoutubeIdFromLink:(NSString*)链接{
如果(link==nil)nil;
NSString*regexString=@”((?我在swift lang中添加了代码..您可以在那里引用并应用相同的逻辑。它会工作的
let ImagesArray = [
[
"SliderID" : 1,
"SliderType" : 1,
"SliderURL" : "http://mca.bananaappscenter.com/Images/SliderImages/MaskGroup2.png",
"Status" : 1
],
[
"SliderID" : 2,
"SliderType" : 1,
"SliderURL" : "http://mca.bananaappscenter.com/Images/SliderImages/MaskGroup3.png",
"Status" : 1
],
[
"SliderID" : 3,
"SliderType" : 2,
"SliderURL" : "https://www.youtube.com/watch?v=l1yN0KUHgoc",
"Status" : 1
]
]
在tableview中,cellforrow u可以这样实现:
let sampleDict = ImagesArray[indexPath.row] as? NSDictionary
let SliderURL = sampleDict.valueForkey("SliderURL") as? String
let SliderType = sampleDict.objectForkey("SliderType") as? NSNumber
if SliderURL != nil{
//means url abvl
if SliderType == 2{
//video data
cell.addImageView.image = "set video default thumbnail image "
}else if SliderType == 1{
//imagedata
// cell.addImageView.image = "set ur image "
}
}
在目标C中
NSMutableDictionary *sampleDict = [ImagesArray objectAtIndex:indexPath.row];
NSString *imageStr = [[NSString alloc]init];
imageStr = [sampleDict valueForKey:@"SliderURL"];
//NSString*SliderType=[[NSString alloc]init];
//SliderType=[sampleDict valueForKey:@“SliderType”]
我的问题得到了答案谢谢每一个回答我的人
if ([ImagesArray[indexPath.row][@"SliderType"] intValue]==1) {
NSString *imageStr=ImagesArray[indexPath.row][@"SliderURL"];
[cell.addImageView sd_setImageWithURL:[NSURL URLWithString:imageStr]
placeholderImage:[UIImage imageNamed:@"default"]];
}else if ([ImagesArray[indexPath.row][@"SliderType"] intValue]==2) {
NSString *imageStr=ImagesArray[indexPath.row][@"SliderURL"];
[cell.addImageView sd_setImageWithURL:[NSURL URLWithString:imageStr]
placeholderImage:[UIImage imageNamed:@"VideoButton"]];
}
请添加其他代码if(requestType==RequestTypeHomeSlider){NSLog(@“%@”,responseObject);NSString*respCode=[NSString stringWithFormat:@“%@”,[responseDict valueForKey:@“StatusCode”]];if([respCode IsequalString:@“200”]){ImagesArray=[NSMutableArray new];ImagesArray=[responseObject valueForKey:@“SliderList”];[\u imageCollectionView reloadData];}请添加其他代码hi@karthik您需要哪种代码?请告诉我与您的collectionview代码相关的信息,或者在您的问题中添加整个类代码您的SliderType数据是数字类型。首先获取数字/Int-typeint SliderType=[sampleDict[@“SliderType”]integerValue];
if ([ImagesArray[indexPath.row][@"SliderType"] intValue]==1) {
NSString *imageStr=ImagesArray[indexPath.row][@"SliderURL"];
[cell.addImageView sd_setImageWithURL:[NSURL URLWithString:imageStr]
placeholderImage:[UIImage imageNamed:@"default"]];
}else if ([ImagesArray[indexPath.row][@"SliderType"] intValue]==2) {
NSString *imageStr=ImagesArray[indexPath.row][@"SliderURL"];
[cell.addImageView sd_setImageWithURL:[NSURL URLWithString:imageStr]
placeholderImage:[UIImage imageNamed:@"VideoButton"]];
}