Incompatible integer to pointer conversion

di il
7 risposte

Incompatible integer to pointer conversion

Ho dei problemi nel capire perché ottengo un messaggio d'errore del tipo
incompatible integer to pointer conversion passing int to parameter of type int *
su un oggetto come questo:

Oggetto *tempOggetto = [[Oggetto alloc] init];
int numero = 5;
tempOggetto.valore = numero;            //L'errore è qui [incompatible integer to pointer conversion passing int to parameter of type int *]
dove Oggetto è:

@interface Oggetto : NSObject{
@public 
@private
    int *valore;
@protected 
}
@property(nonatomic,readwrite,assign) int *valore;
@end
---------------------------------------------------------------------------
@implementation Numero
@synthesize valore;
@end
Aiutatemi. Al momento mi sento un po' stranito

7 Risposte

  • Re: Incompatible integer to pointer conversion

    Per i tipi atomici, quando dichiari gli attributi non devi dargli il puntatore.

    Quindi:
    @interface Oggetto : NSObject{
    ...
        int valore;
    ...
    @end
    
  • Re: Incompatible integer to pointer conversion

    Anche se faccio questo mi ritorna lo stesso errore
    
    @interface Oggetto : NSObject{
    @public 
    @private
        int valore;
    @protected 
    }
    @property(nonatomic,readwrite,assign) int valore;
    @end
    ---------------------------------------------------------------------------
    @implementation Numero
    @synthesize valore;
    @end
    
    Non solo, se non metto il puntatore ho problemi con il "@synthesize valore"
  • Re: Incompatible integer to pointer conversion

    Giusto...stai dichiarando una property NONATOMIC per un tipo atomico.
    @property(assign) int valore;
    al posto del @synthesize fai
    @dynamic valore;
  • Re: Incompatible integer to pointer conversion

    Mannaggia.


  • Re: Incompatible integer to pointer conversion

    Ok, ennesima cazzata, perdonami.

    nel .h fai:
    @property (assign) int valore;
    nel .m fai:
    @synthesize valore;
    cosi DEVE funzionare.
  • Re: Incompatible integer to pointer conversion

    Non ho capito perché però adesso funziona!
    GRAZIE 1000

    E se volessi inserire all'interno di Oggetto una stringa da modificare dall'esterno?!
  • Re: Incompatible integer to pointer conversion

    Dichiari una property di una stringa (il tipo è NSString, quindi nonatomic e vuole il puntatore), con relativo synthesize, e dall' esterno con l' istanza del tuo oggetto puoi settargli un valore.
Devi accedere o registrarti per scrivere nel forum
7 risposte