2013-04-10 36 views
1

我添加圖像在NSMutableArray比我轉換它在NSData和agaun我存儲該圖像在其他NSMutableArray。但是,當我轉換回圖像,讓我錯誤從nsdata NSInvalidArgumentException'回推圖像',原因:' - [UIImage length]

我的代碼是

NSData *Puzzleimage; 
PuzzleImg = [[NSMutableArray alloc] init]; 
TriangleImg = [[NSMutableArray alloc] init]; 

[PuzzleImg addObject:[UIImage imageNamed:@"Triangle_1.png"]]; 
    [PuzzleImg addObject:[UIImage imageNamed:@"Triangle_2.png"]]; 
    [PuzzleImg addObject:[UIImage imageNamed:@"Triangle_3.png"]]; 
    [PuzzleImg addObject:[UIImage imageNamed:@"Triangle_4.png"]]; 
    [PuzzleImg addObject:[UIImage imageNamed:@"Triangle_5.png"]]; 


    for (int l=0; l<[PuzzleImg count]; l++) { 
     Puzzleimage = UIImagePNGRepresentation([PuzzleImg objectAtIndex:l]); 
     [TriangleImg addObject:Puzzleimage]; 

Retrive中滾動查看

CGRect scrollViewFrame = CGRectMake(10, 60, 300, 350); 
     PuzzleList = [[UIScrollView alloc] initWithFrame:scrollViewFrame]; 
     [self.view addSubview:PuzzleList]; 

     int y1=10; 
     int y2=10; 
     if ([PuzzleImg count] >0) 
     { 
      for(int i=0;i<[PuzzleImg count];i++) 
      { 
        UIImage *SolImg = [[UIImage alloc] initWithData:[PuzzleImg objectAtIndex:i]]; 
        UIButton *btn =[[UIButton alloc]initWithFrame:CGRectMake(10, y1, 100, 100)]; 
        [btn setBackgroundImage:SolImg forState:UIControlStateNormal]; 
        btn.tag = i; 
        [btn addTarget:self action:@selector(SelectPuzzleButtonClick:) forControlEvents:UIControlEventTouchUpInside]; 

        [PuzzleList addSubview:btn]; 
        y1=y1+110; 
     } 
} 

誤差 *錯誤是顯示器上線:: UIImage SolImg = [[UIImage alloc] initWithData:[PuzzleImg objectAtIndex:i]];

- [UIImage的長度]:無法識別的選擇發送到實例0xa1bc690 2013年4月10日10:41:47.292 CreativeLogic [2791:1a003] *終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因:「 - [UIImage的長度]:無法識別的選擇發送到實例0xa1bc690' *第一擲調用堆棧: (0x2612012 0x1422e7e 0x269d4bd 0x2601bbc 0x260194e 0x4cf1b2 0x38c1f3 0xc1d7 0xaac3 0xa532 0x44b817 0x44b882 0x44bb2a 0x462ef5 0x462fdb 0x463286 0x463381 0x463eab 0x4644a3 0x464098 0xe255 0x1436705 0x36d920 0x36d8b8 0x42e671 0x42ebcf 0x42dd38 0x39d33f 0x39d552 0x37b3aa 0x36ccf8 0x28fedf9 0x28fead0 0x2587bf5 0x2587962 0x25b8bb6 0x25b7f44 0x25b7e1b 0x28fd7e3 0x28fd668 0x36a65c 0x2022 0x1f55) 的libC++ abi.dylib:終止叫做拋出異常

+0

是NSData的,請看到我的更新感謝 – 2013-04-10 05:34:56

+0

你發送'TriangleImg'到第二代碼段或只'PuzzleImg '? – Alexander 2013-04-10 05:36:42

回答

1

嘗試從此改變......

UIImage *SolImg = [[UIImage alloc] initWithData:[PuzzleImg objectAtIndex:i]]; 

到...

UIImage *SolImg = [[UIImage alloc] initWithData:[TriangleImg objectAtIndex:i]]; 

我認爲這是足以讓你

0

見你加UIImageNSDataTriangleImgNSMutableArray對象不PuzzleImgNSMutableArray對象,以便使用波紋線

UIImage *SolImg = [[UIImage alloc] initWithData:[TriangleImg objectAtIndex:i]]; 

,而不是這種波紋管生產線。 ..

UIImage *SolImg = [[UIImage alloc] initWithData:[PuzzleImg objectAtIndex:i]]; 
相關問題