2014-04-24 14 views
8

Ho un UiVIewController in cui ho trascinato una vista tabella e ho inserito tutte le connessioni necessarie come delegato e origine dati e funziona perfettamente, tutto è ottimo. Ho cercato di impostare uno sfondo a questa vista tabella, e l'ho ottenuto questo strano erroreCUICatalog: Nome risorsa non valido fornito: o fattore di scala non valido: 2.000000

CUICatalog: Invalid asset name supplied: , or invalid scale factor: 2.000000 

ho cercato di impostare lo sfondo con questo metodo:

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mypredictions_bg.png"]]; 
[tempImageView setFrame:self.tableView.frame]; 

self.tableView.backgroundView = tempImageView; 

Cosa mi manca? Ho controllato che il nome dell'immagine sia corretto

+3

v'è alcuna dichiarazione come '[UIImage imagenamed: @ ""];' nel codice? in questo modo l'avvertimento arriva quando provi a caricare un'immagine con '[UIImage imageNamed: myImage]' ma 'iOS' non ha trovato un'immagine con nome' myImage' – Buntylm

+0

@BuntyM ho controllato tutto ciò che i file ci sono .. ho provato a caricare allo stesso modo ma in un controller tableview ha funzionato perfettamente, ma nel mio caso non sarà –

risposta

0

Se il tipo di immagine è png, non è necessario sostituirlo con il nome file dell'immagine perché il tipo di immagine XCode predefinito è già png. Prova questo;

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"mypredictions_bg"]]]; 
0

Nel mio caso, stava dirigendo verso il viewController sbagliato. Stavo dirigendo verso viewController che gestiva il contenuto di un ViewController basato sulla pagina, invece di collegarlo al viewController in cui erano collegati il ​​pageContentViewController e il PageViewController. Spero che questo ti aiuti.

2

nel mio caso ho fatto per categoria UIImageView e UITextfied, in quanto, a volte non ho bisogno di un'immagine, che il tempo ho fornito @ "" (cioè Stringa NULL), che si verifica problema, dopo un po 'di R & DI fornisce solo "nil" anziché @ "", risolve il mio avviso, quindi forse questo tipo di avvertimento si verifica mentre non si ottiene l'immagine corretta.

3

Ho creato una classe di debug che esegue il swizzles di imageNamed in modo da poter ottenere una traccia di debug su dove si sta verificando.

È necessario installare JRSwizzle per utilizzarlo.

https://github.com/rentzsch/jrswizzle

#import "UIImageDebugger.h" 
#import "JRSwizzle.h" 


@implementation UIImageDebugger 

+ (void)startDebugging 
{ 
    static dispatch_once_t once; 

    dispatch_once(&once, ^{ 

     NSError *error=NULL; 

     [UIImage jr_swizzleClassMethod:@selector(imageNamed:) 
         withClassMethod:@selector(hs_xxz_imageNamed:) 
           error:&error]; 


     if (error) 
     { 
      NSLog(@"error setting up UIImageDebugger : %@",error); 
     } 
     else 
     { 
      NSLog(@"!!!!!!!!!!!!!!!!!!!! UIImage swizzle in effect - take this out for release!!"); 
     } 


    }); 

} 

@end 

@interface UIImage (UIViewDebugger) 

+ (UIImage*)hs_xxz_imageNamed:(NSString *)name; 

@end 


@implementation UIImage (UIViewDebugger) 

+ (UIImage*)hs_xxz_imageNamed:(NSString *)name 
{ 
    if (!name) 
    { 
     NSLog(@"null image name at \n%@",[NSThread callStackSymbols]); 
    } 

    UIImage *image=[self hs_xxz_imageNamed:name]; 

    if (!image) 
    { 
     NSLog(@"failed to make image at \n%@",[NSThread callStackSymbols]); 
    } 

    return image; 
} 

@end 
+4

Non hai bisogno di metodi swizzle è possibile impostare un punto di interruzione in quel metodo e ispezionare le variabili. Nel pannello breakpoint (cmd + 7) fai clic sul piccolo + in basso e aggiungi un breakpoint simbolico con il nome "+ [UIImage imageNamed:]". È anche possibile impostare le condizioni per interrompere e inviare comandi a lldb quando viene colpito il punto di interruzione. – puppybits

+2

@puppybits: come impostare le condizioni? Ho familiarità con l'impostazione delle condizioni nel contesto del mio codice - ma con il punto di interruzione simbolico, non sono sicuro di come accedo all'input (nome) o al valore di ritorno per interrogarli. –

+0

@ConfusedVorlon, questo è fantastico. Incorporato nel progetto per aiutarci a trovare tutti i posti quando rimuoviamo per errore i file di risorse dal progetto. –

Problemi correlati