2013-09-17 2 views
5

Я пытаюсь установить изображение на TableCell.Ошибка при загрузке изображения при тестировании на iPhone 5

Это мой код:

public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath) 
{ 
    UITableViewCell cell = tableView.DequeueReusableCell (cellIdentifier); 
    Parking parking = (tableItems.ToArray() [indexPath.Row] as Parking); 

    if (cell == null) { 
     cell = new UITableViewCell(UITableViewCellStyle.Subtitle, cellIdentifier); 
    } 

    cell.TextLabel.Text = parking.Name; 

    UIImage img = UIImage.FromBundle ("occupied"); 
    cell.ImageView.Image = img; 

    cell.DetailTextLabel.Text = parking.GenerateSubtitle(); 
    cell.Accessory = UITableViewCellAccessory.DisclosureIndicator; 

    return cell; 
} 

Это отлично работает во время тестирования на эмуляторе, но когда я пытаюсь отлаживать это на моем iPhone 5, я получаю эту ошибку:

System.InvalidCastException: Cannot cast from source type to destination type. 
    at MonoTouch.UIKit.UIImage.FromBundle (System.String name) [0x0001e] in   /Developer/MonoTouch/Source/monotouch/src/UIKit/UIImage.g.cs:198 
    at parko_iphone.MainTableSource.GetCell (MonoTouch.UIKit.UITableView tableView,  MonoTouch.Foundation.NSIndexPath indexPath) [0x0004c] in /Users/gertpoppe/projects/parko_iphone/parko_iphone/CustomComponents/MainTableSource.cs:34 
    at at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging:void_objc_msgSend (intptr,intptr) 
    at MonoTouch.UIKit.UIWindow.MakeKeyAndVisible() [0x00008] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIWindow.g.cs:129 
    at parko_iphone.AppDelegate.FinishedLaunching (MonoTouch.UIKit.UIApplication app, MonoTouch.Foundation.NSDictionary options) [0x0002e] in /Users/gertpoppe/projects/parko_iphone/parko_iphone/AppDelegate.cs:35 
    at at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) 
    at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38 
    at parko_iphone.Application.Main (System.String[] args) [0x00008] in /Users/gertpoppe/projects/parko_iphone/parko_iphone/Main.cs:16 

ошибка происходит на линии, где я загрузить изображение:

UIImage img = UIImage.FromBundle ("occupied"); 
+0

'занято' право корпус? Симулятор iOS нечувствителен к регистру, а устройства чувствительны к регистру. –

+0

Имя с изображения «занято.png» и «занято@2x.png», поэтому я не думаю, что это проблема. – gert789

+0

Попробуйте добавить расширение изображения к имени файла. – vburojevic

ответ

0

Попробуйте заменить:

UIImage img = UIImage.FromBundle ("occupied"); 

С:

UIImage *img = UIImage.FromBundle ("occupied"); 

ИЛИ

Попробуйте заменить:

UIImage img = UIImage.FromBundle ("occupied"); 
cell.ImageView.Image = img; 

С:

cell.ImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"occupied"]]; 
+0

gert789 использует C# (а не Objective C) для создания приложения. Таким образом, предлагаемый код не будет работать. – Codo

Смежные вопросы