jaynaiPhone
jaynaiPhone

Reputation:

iPhone simulator shows app's images but iPhone does not

I have create an application on iphone using objective-c.In this application i am just displaying different players images stored in one folder, which will be run perfectly on simulator. But when I deploy it on iphone it is not showing the images of the player.

for that the code is:

UIImageView *imageplayer = [[UIImageView alloc]initWithFrame: CGRectMake(imgx, imgy+45,135,150)];
imageplayer.image = [UIImage imageNamed:playerpng];

if(imageplayer.image == nil)
    [imageplayer setImage:[UIImage imageNamed:playerjpg]];

if(imageplayer.image == nil)
    [imageplayer setImage:[UIImage imageNamed:@"noimage.png"]];

[self.view addSubView:imageplayer];

Plz solve this query. Thanks in advance

Upvotes: 1

Views: 3031

Answers (9)

Farooq Nasim Ahmad
Farooq Nasim Ahmad

Reputation: 164

Select correct target while adding image files to your project. Following are steps to make it further clear

  1. Select Add Files to "YourProjectName"
  2. In opening window there is an "Add to targets" option at bottom that shows all available targets
  3. Check target or multiple targets in which you want to add images
  4. Press "Add" button and you are ready to go

Upvotes: 0

timv
timv

Reputation: 3366

After some investigation, Michael's comment seems to have a solved it for me. I had all lower case as the file name but was following variable convention and had the png file with an upper case for the second part of the file name. Here my file was putback.png but was referenced in my code as putBack.png

 UIImage *putBackImage = [UIImage imageNamed:@"putBack.png"]; //wrong
 UIImage *putBackImage = [UIImage imageNamed:@"putback.png"]; //correct

Upvotes: 0

RocketMan
RocketMan

Reputation: 4299

Make sure the image files are added to your XCode project.

Upvotes: 0

Michael
Michael

Reputation: 21

I had the same problem, solved by using all lowercase for the file name in code - image.jpg, but it does not seem to make any difference what case the actual file name is, e.g. Image.jpg

Upvotes: 2

Tony Lenzi
Tony Lenzi

Reputation: 4209

I am currently experiencing this problem as well. I was able to correct it after a bit of debugging and reviewing the build file.

When I do an ls -l, I noticed that some of my png files have a @ symbol beside the permissions. When I followed that up with a ls -l@, it showed that the files with an '@' had an attribute set 'com.apple.quarantine'. This attribute is given to a file (often from a zip, jar, or other executable) that is downloaded from the net. You can get rid of this attribute by performing:

xattr -d com.apple.quarantine *.png

Then, select the images in XCode, and check that the checkbox under the target is checked. In my case, it was not, so the images weren't being included in the bundle.

Upvotes: 2

Barney Mattox
Barney Mattox

Reputation: 2974

Just to clarify, does the "noimage.png" display, or is the program loading a player image but failing to display it? Or is nothing loading.

These should easily be determined in debug mode.

A few additional things to check...

1) Just for testing, start out with PNG versions of the player files. This is the primary format on the iPhone and might eliminate a file format issue or other anomaly that the simulator is not sensitive to.

2) With regard to fixing in an image editor, specifically make sure that the image is set to a DPI of 72 pixels/inch. The iPhone and particularly Interface Builder are very sensitive to this being correct and will sometimes not display or will display a very blurred version of the image if incorrect.

3) Make sure the image(s) haven't been added multiple times (from different directories and/or to different group folders). We encountered a situation where we had inadvertently imported the same images at two different layers within the project hierarchy and this can cause unexpected behavior within the iPhone (selecting randomly or failing to select).

4) Make sure the Get Info -> Targets has your particular target checked. The simulator may still see the image but it will not get deployed to the iPhone.

5) Make sure you can view the image within XCode and that it looks correct.

Barney

Upvotes: 1

Juan Karam
Juan Karam

Reputation: 61

Sometimes xCode doesent update correctly the bundle, try cleaning and building again.

Upvotes: 6

Felixyz
Felixyz

Reputation: 19143

This happens to me sometimes. I once spent half a night trying to figure out what was wrong. In this end, this is what worked: open the image with an image editor and save it again. That's all. I'm using the free Acorn image editor to do this. Haven't tried it with Photoshop. (After all, it seems that Photoshop might be responsible for introducing the error in the first place, although that's far from sure.)

I don't know what causes the problem. I usually get it when I use png files that have been sent to me. Could be a simple file permissions problem, or some more subtle problem with the image format. I would be very interested in hearing the opinion of better-informed people.

In any case, if all else fails just try this: open the image with Acorn, save over the original file. Works for me.

Upvotes: 0

oxigen
oxigen

Reputation: 6263

check name of image file. It must be "noimage.png" not Noimage.png or noimage.PNG

Upvotes: 1

Related Questions