Declarar que flota en el objetivo de c

Soy nuevo en el Objective-C y estoy teniendo problemas con el conjunto de la nonatomic, strong, weak, etc. Me pregunto si voy a tener alguna con los problemas de Core Data con float valores que se definen así:

@property (nonatomic) float * rating;
@property (nonatomic) float * mRating;

Debo declarar la diferente?

2 Kommentare

  1. 17

    Sí, debe declarar sin asteriscos:

    @property (nonatomic) float rating;
    @property (nonatomic) float mRating;

    Los asteriscos indican punteros. Objetivo C clases se declaran con asteriscos, porque los casos son referidos a través de punteros. Primitivas como floats, ints, etc. se define como valores, es decir, sin los asteriscos. Lo mismo va para typedef-ed tipos, tales como CGFloat y NSInteger: campos escalares de estos tipos debe ser definido sin asterisco.

    • Usted también debe usar CGFloat en lugar de float.
    • Genial!!! Gracias! Sólo por curiosidad, ¿por qué usted no desea utilizar asteriscos?
    • Debido a que el asterisco es una bestia completamente distinta – un puntero vs un simple «valor escalar». Si usted no entiende la diferencia que usted realmente necesita para estudiar los punteros y los objetos antes de ir más lejos con Objective-C.
    • Si usted está usando los datos de los núcleos debe ser declarado como NSNumber ya que debe de ser un objeto.
    • no es cierto, CoreData puede exportar las propiedades como escalares.
    • Sí se puede, pero tienes que activarlo con un explícito de la bandera en el modelo, y es generalmente más apropiado para el uso de NSNumber debido a la opacidad es como un tipo de datos.

  2. 0

    Debe perder definitivamente el *, a menos que usted se refiere a crear un puntero. Fuera de eso se ve muy bien!

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea