我是新的iOS开发人员;我有一个具有解析和动态单元格的应用程序,但是当我运行该应用程序时,我发现该应用程序由于标题原因而崩溃,如下所示

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{

    myArray = [[NSMutableArray alloc] init];


    //create new view if no view is available for recycling

   // view = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 250.0f, 300.0f)] autorelease];

    FXImageView *imageView = [[[FXImageView alloc] initWithFrame:CGRectMake(0, 0, 250.0f, 350.0f)] autorelease];
    imageView.contentMode = UIViewContentModeScaleAspectFit;
    imageView.asynchronous = YES;
   // imageView.reflectionScale = 0.5f;
   // imageView.reflectionAlpha = 0.25f;
  //  imageView.reflectionGap = 10.0f;
    imageView.shadowOffset = CGSizeMake(0.0f, 2.0f);
    imageView.shadowBlur = 5.0f;
    imageView.cornerRadius = 10.0f;
    view = imageView;

    [ProgressHUD dismiss];

     NSString *string1 = [[NSUserDefaults standardUserDefaults] stringForKey:@"Class"];

    PFQuery *query = [PFQuery queryWithClassName:[NSString stringWithFormat:@"%@",string1]];


    query.cachePolicy = kPFCachePolicyNetworkElseCache;

    //show loader view


    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if (!error) {

            myArray = [[NSMutableArray alloc] initWithArray:objects];

            PFObject *object = [myArray objectAtIndex:index];


            [file getDataInBackgroundWithBlock:^(NSData *data1, NSError *error) {
                if (!error) {

                    ((UIImageView *)view).image = [UIImage imageWithData:data1];

                    //[HUD hideUIBlockingIndicator];

                }
            }];

        }

    }];

    return view;


}


我将第一个屏幕UICollectionView与来自解析的动态数据一起使用,如下代码

实用集合视图委托

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"cell";
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];

    CALayer *layer = cell.layer;
    [layer setCornerRadius:8.0f];
    [layer setMasksToBounds:YES];
   // [layer setBorderWidth:1.0f];
  //  layer.backgroundColor = [UIColor whiteColor].CGColor;
    //can you click

    PFObject *imageObject = [myArray objectAtIndex:indexPath.item];
    PFFile *imageFile = [imageObject objectForKey:@"image"];
    NSString *name = [imageObject objectForKey:@"name"];

    [imageFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
        if (!error) {

            UIImageView *imageView = (UIImageView *)[cell viewWithTag:100];
            imageView.image = [UIImage imageWithData:data];

            UILabel *title2 = (UILabel *)[cell viewWithTag:200];
            title2.text = [NSString stringWithFormat:@"%@",name];
            title2.font = [UIFont fontWithName:@"GESSTextMedium-Medium" size:12];
        }
    }];


    return cell;
}


我需要一些帮助来知道错误在哪里;
每次我在控制台[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]上收到此错误时

最佳答案

没有足够的信息。我们甚至不知道此崩溃的确切行。
myArray中的实际对象数是多少?
您在collectionView:numberOfItemsInSection:上获得的回报
等等..

恕我直言,最简单的解决方案是调试此崩溃。并找出为什么索引大于预期的objectAtIndex:。尝试这个:


  1)打开“断点导航器”
  
  2)点击“ +”按钮,然后选择“添加例外断点”选项


现在,应用程序将在调试时在任何异常上使用此断点。

10-07 19:17
查看更多