Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何进行json类型响应?_Ios_Objective C_Image_Video_Uicollectionview - Fatal编程技术网

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服务中添加一个参数来隔离它,该参数指示这是图像还是视频
  • 一旦这是出了系统,你将需要一个特殊的看法,可以加载视频完美我用过,它的作品很好
  • 现在,在单元格中添加
    imageView
    和video player view,并添加一个条件,在此条件下,您可以检查它是否是视频,然后根据返回的信息显示
    YTPlayerView
    或imageView
然后,在这些功能的帮助下,您可以在播放器视图上加载视频:

+ (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"]];

                }