Asignación de la propiedad NSInteger en la aplicación iPhone

Tengo una tabla en SQLite. Quiero insert datos en esa tabla. La tabla tiene responses_id, participant_id, answer_text, answer_option_update_date_time. responses_id y participant_id son integers. Cuando asigno algo a participant_id da un error, el object no puede establecerse en la propiedad.

@interface Coffee : NSObject { NSInteger coffeeID; NSInteger participant_Id; NSString*question_Id; NSString*answer_option; NSString*answer_text; NSString*update_date_time; //Intrnal variables to keep track of the state of the object. } @property (nonatomic, readonly) NSInteger coffeeID; @property (nonatomic, retain) NSInteger participant_Id; @property (nonatomic, copy) NSString *question_Id; @property (nonatomic, copy) NSString *answer_option; @property (nonatomic, copy) NSString *answer_text; @property (nonatomic, copy) NSString *update_date_time; - (void)save_Local { CereniaAppDelegate *appDelegate = (CereniaAppDelegate *)[[UIApplication shanetworkingApplication] delegate]; Coffee *coffeeObj = [[Coffee alloc] initWithPrimaryKey:0]; coffeeObj.participant_Id=mynumber; NSString*question="1"; coffeeObj.question_Id=question; coffeeObj.answer_option=selectionAnswerOption; coffeeObj.answer_text=professionTextField.text; NSDate* date = [NSDate date]; NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:MM:SS"]; NSString* str = [formatter stringFromDate:date]; UPDATE_DATE_TIME=str; coffeeObj.update_date_time=UPDATE_DATE_TIME; //Add the object [appDelegate addCoffee:coffeeObj]; } 

Cuando asigno un valor a participant_id da un error.

NSInteger no es una class, es un tipo básico como int o long . En iOS, NSInteger se typedef como int , en OS X se typedef como un long . Por lo tanto, no debe tratar de retain un NSInteger . Debe cambiar la statement de su propiedad a:

 @property (nonatomic, assign) NSInteger participant_Id; 

Lo mismo vale para su propiedad coffeeID .