2012-06-27 32 views
7

Tôi đã thực hiện một triệu UITables - với phụ đề, hình ảnh, hình nền, màu sắc, kiểu chữ - bạn đặt tên cho nó. Đột nhiên, tôi đang đâm vào chiếc bàn này, đặc biệt trên đường dây gọi hình ảnh của ô. Dưới đây là các mã:Hình ảnh UITableView gây ra sự cố

// Configure the cell: 
cell.textLabel.font = [UIFont fontWithName:@"Franklin Gothic Book" size:18]; 
cell.textLabel.text = [leadershipMenu objectAtIndex:indexPath.row]; 
cell.detailTextLabel.text = [leadershipSubtitlesMenu objectAtIndex:indexPath.row]; 

// And here's the statement that causes the crash: 
cell.imageView.image = [leadershipPhotosMenu objectAtIndex:indexPath.row]; 

Bây giờ, lỗi tôi nhận được là:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFConstantString _isResizable]: unrecognized selector sent to instance 0xcacbc' 

Tôi biết chắc chắn rằng những tuyên bố gây ra tai nạn là nguyên nhân

cell.imageView.image = ... 

càng sớm như tôi nhận xét nó ra mọi thứ hoạt động tốt.

Tôi chưa bao giờ trong đời tôi nhìn thấy một lỗi

-[__NSCFConstantString _isResizable]: 

. Tôi đã googled nó nhưng tìm thấy rất ít trên đó.

Rất đặc biệt.

Có ai ở đó có bất kỳ manh mối nào không?

+0

Lãnh đạoPhotosMenu là gì? Nó là một mảng hình ảnh? – Vaquita

+0

Làm thế nào bạn lưu trữ hình ảnh trong mảng "LeadersPhotosMenu"? Tôi có thể xem nó là gì không? –

+0

chắc chắn, đây là mã: 'LeadersPhotosMenu = [[NSMutableArray alloc] initWithObjects: @" JohnQ.jpg ", @" BillZ.png ", nil];' Và những hình ảnh đó nằm trong dự án của tôi - có nghĩa là họ đang ở trong Xcode, một phần của gói. – sirab333

Trả lời

12

như đã đề cập trong bình luận của bạn. cách bạn lưu hình ảnh của bạn là nguyên nhân gây ra vấn đề.

thử này ..

leadershipPhotosMenu = [[NSMutableArray alloc] initWithObjects:[UIImage imageNamed:@"JohnQ.jpg"], [UIImage imageNamed:@"BillZ.png"], nil]; 

các mã trên sẽ lưu trữ các hình ảnh trong mutableArray của bạn, đó sẽ làm việc nhưng tôi đề nghị không để lưu trữ các hình ảnh trong một mảng.

bạn cũng có thể giải quyết vấn đề của bạn mà không cần lưu trữ hình ảnh của bạn trong mảng của bạn như mã trên bằng cách thực hiện:

nhắn
cell.imageView.image = [UIImage imageNamed:(NSString*)[leadershipPhotosMenu objectAtIndex:indexPath.row]]; 

lỗi này có nghĩa là đối tượng của bạn bên leadershipPhotosMenu của bạn không phải là hình ảnh, nhưng chuỗi

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFConstantString _isResizable]: unrecognized selector sent to instance 0xcacbc' 
+0

jesus - tổng não-rắm. Rõ ràng là nhìn chằm chằm vào màn hình quá nhiều giờ liên tiếp. Tôi có 40 bảng với hình ảnh trong dự án này và tôi không thể thấy lỗi đơn giản này nhìn chằm chằm vào mặt tôi. Rõ ràng thời gian để nhấn bao :-) Thanks boys! (và xin lỗi) – sirab333

+0

bạn rất hoan nghênh :) – janusbalatbat

1

Làm điều này:

cell.imageView.image = [UIImage imageNamed:[leadershipPhotosMenu objectAtIndex:indexPath.row]]; 
+0

Đúng, đây là một giải pháp thay thế khác mà bạn có thể làm theo. – Tarun

1

Bạn đang lưu trữ tên của quảng cáo hình ảnh chứ không phải hình ảnh. Tuy nhiên, imageView có UIImage là thuộc tính của nó chứ không phải tên hình ảnh. Vì vậy, thực hiện dưới đây thay đổi.

cell.imageView.image = [UIImage imageNamed:[leadershipPhotosMenu objectAtIndex:indexPath.row]]; 
Các vấn đề liên quan