Método pathForResource

introduzca la descripción de la imagen aquí Estoy jugando con imageView y está el método [imageWithContentsOfFile]; Pero en realidad no muestra nada después de ejecutarlo. Debajo del código, está el método [imageNamed:] y funciona como siempre. ¿Algunas ideas? Gracias,

#import "ViewController2.h" @interface ViewController2 () @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @implementation ViewController2 - (BOOL)prefersStatusBarHidden { return YES; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // just fugly don't do it // self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"stanford"]]; UIBarButtonItem *shareItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil]; UIBarButtonItem *cameraItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:nil]; NSArray *actionButtonItems = @[shareItem, cameraItem]; self.navigationItem.rightBarButtonItems = actionButtonItems; NSString *imgPath =[[NSBundle mainBundle] pathForResource:@"google" ofType:@"png"]; self.imageView.image = [UIImage imageWithContentsOfFile:imgPath]; // self.imageView.image = [UIImage imageNamed:@"google"]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end 

Creo que el problema es que el método pathForResource no funciona correctamente de alguna manera …

Si se dirige a iOS 7+ y utiliza Asset Catalogs (que parece que está utilizando, ya que ha especificado images.xcassets en uno de sus comentarios), Xcode 5 ahora coloca los resources en un nuevo formatting de file. 1 file para todos los activos. Esto significa que no puede get acceso al file directamente usando imageWithContentsOfFile: Y también es por eso que pathForResource:ofType: no devuelve una ruta.

Si necesita acceder directamente al file, puede includelo como una image normal fuera de un catálogo de activos.

También debe preguntarse si necesita acceder al file directamente. En la mayoría de los casos puede usar imageNamed: Lo que también le da caching automático para la image y puede mejorar el performance.

Establezca un breakpoint para verificar el resultado "imgPath". Si está vacío, tal vez debería agregar @ 2x para nombrar:

NSString * imgPath = [[NSBundle mainBundle] pathForResource: @ "google @ 2x" ofType: @ "png"];

-> Haz clic con el button derecho en la image del proyecto Navegador

-> Mostrar en buscador

-> haga clic derecho en la image en el buscador

-> Obtener información

-> Busca el nombre del file y la extensión.

-> Da el mismo nombre y extensión en tu proyecto. Funcionaria