我是新的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)点击“ +”按钮,然后选择“添加例外断点”选项
现在,应用程序将在调试时在任何异常上使用此断点。