2013-08-31 46 views
-1

我在故事板中使用MultiCarousel,并且出现错误,无法在传送带上显示图像。是否存在与代码中的问题?我从viewfromItemAtIndex得到错误说
预期的方法体
预期“:”
预期标识符或(
预期标识符或(
外来的大括号(“}”)
,如果你想看到一个特定部分,请随时要求更多的代码。图片不显示使用iCarousel

#import "iCarouselExampleViewController.h" 


@interface iCarouselExampleViewController() 

@property (nonatomic, retain) NSMutableArray *items1; 
@property (nonatomic, retain) NSMutableArray *items2; 

@end 


@implementation iCarouselExampleViewController 

@synthesize carousel1; 
@synthesize carousel2; 
@synthesize items1; 
@synthesize items2; 
- (void)awakeFromNib 
{ 
    //set up data sources 
    self.items1 = [NSMutableArray array]; 
    for (int i = 0; i < 100; i++) 
    { 
     [items1 addObject:[NSNumber numberWithInt:i]]; 
    } 

    self.items2 = [NSMutableArray array]; 
    for (int i = 65; i < 65 + 58; i++) 
    { 
     [items2 addObject:[NSString stringWithFormat:@"%c", i]]; 
    } 
} 

- (void)dealloc 
{ 
    //it's a good idea to set these to nil here to avoid 
    //sending messages to a deallocated viewcontroller 
    carousel1.delegate = self; 
    carousel1.dataSource = self; 
    carousel2.delegate = self; 
    carousel2.dataSource = self; 


} 

#pragma mark - 
#pragma mark View lifecycle 

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 

    //configure carousel1 
    NSString *fPath = [documentsDirectory stringByAppendingPathComponent:@"Tops"]; 
    NSArray *directoryContent = [fileManager directoryContentsAtPath: fPath]; 
    imageArray1 = [directoryContent mutableCopy]; 

    //configure carousel2 
    fPath = [documentsDirectory stringByAppendingPathComponent:@"Bottoms"]; 
    directoryContent = [fileManager directoryContentsAtPath:fPath]; 
    imageArray2 = [directoryContent mutableCopy]; 

    carousel1.type = iCarouselTypeLinear; 
    carousel2.type = iCarouselTypeLinear; 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 

    //free up memory by releasing subviews 
    self.carousel1 = nil; 
    self.carousel2 = nil; 
} 

#pragma mark - 
#pragma mark iCarousel methods 

- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel 
{ 
    //return the total number of items in the carousel 
    if (carousel == carousel1) 
    { 
     return [imageArray1 count]; 
    } 
    else 
    { 
     return [imageArray2 count]; 
    } 
} 

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

if (view == nil) 
{ 
    view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200.0f, 200.0f)]; 

    UIImage *image; 
    if (carousel == carousel1) 
    { 
     image = [UIImage imageWithContentsOfFile:[imageArray1 objectAtIndex:index]]; 
     ((UIImageView *)view).image = image; 
    } 
    else 
    { 
     image = [UIImage imageWithContentsOfFile:[imageArray2 objectAtIndex:index]]; 
     ((UIImageView *)view).image = image; 
    } 
    return view; 
} 
else { 
    UIImage *image; 
    if (carousel == carousel1) 
    { 
     image = [UIImage imageWithContentsOfFile:[imageArray1 objectAtIndex:index]]; 
     ((UIImageView *)view).image = image; 
    } 
    else 
    { 
     image = [UIImage imageWithContentsOfFile:[imageArray2 objectAtIndex:index]]; 
     ((UIImageView *)view).image = image; 
    } 
} 


return view; 
} 

回答

1

你实际上是非常接近。你失踪的方法开始的第一个支柱。在未来,Xcode的会将你指向一个位置a至少接近错误,您可以用它作为分析代码的起点。始终确保计算并平衡开放和关闭大括号,括号和父母。

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 
{ // <--- This brace was missing!! 
    if (view == nil) 
    { 
     view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200.0f, 200.0f)]; 

     UIImage *image; 
     if (carousel == carousel1) 
     { 
      image = [UIImage imageWithContentsOfFile:[imageArray1 objectAtIndex:index]]; 
      ((UIImageView *)view).image = image; 
     } 
     else 
     { 
      image = [UIImage imageWithContentsOfFile:[imageArray2 objectAtIndex:index]]; 
      ((UIImageView *)view).image = image; 
     } 
     return view; 
    } 
    else { 
     UIImage *image; 
     if (carousel == carousel1) 
     { 
      image = [UIImage imageWithContentsOfFile:[imageArray1 objectAtIndex:index]]; 
      ((UIImageView *)view).image = image; 
     } 
     else 
     { 
      image = [UIImage imageWithContentsOfFile:[imageArray2 objectAtIndex:index]]; 
      ((UIImageView *)view).image = image; 
     } 
    } 
    return view; 
} 
+0

谢谢错误已完全消失,但我无法看到图片显示在传送带上。我没有任何错误,而且真的很奇怪,我看不到任何东西,只是我放在Carousel后面的UIimage。 – poradi12

+0

同样的问题,你找到解决方案吗? – XIMRX