NSString property in Klasse, fehler beim kompilieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSString property in Klasse, fehler beim kompilieren

    Hi zusammen,
    ich arbeite gerade Beispiele aus einem Buch nach und habe diesbezüglich eine Verständnis Frage. Ich wollte meinen Aktien eine Namen vergeben und habe mir gedacht das geht doch wunderbar mit einen NSString. Jedoch bekomme ich eine Fehlermeldung beim kompilieren wenn ich bei der Property Deklaration das (Strong) vor dem NSString weg lasse. In meinem Buch wird über das (Strong) nur beschrieben das dieser "modifier" aussagt das dies ein Zeiger zu einem Objekt ist das den Eigentum beansprucht.

    Wieso kann man ein Property für NSString nicht ohne diesem Modifier deklarieren? Wieso sind diese modifier Wichtig? Kann mir da jemand kurz auf die Sprünge helfen?!


    Quellcode

    1. @interface StockHolding : NSObject
    2. {
    3. float purchaseSharePrice;
    4. float currentSharePrice;
    5. int numberOfShares;
    6. NSString *companyName;
    7. }
    8. //getter & setter
    9. @property float purchaseSharePrice;
    10. @property float currentSharePrice;
    11. @property int numberOfShares;
    12. @property (strong) NSString *companyName;
    Alles anzeigen



    Kompiliere ich diese Klasse und lasse bei der NSString Deklaration das (Strong) weg, dann bekomme ich folgende Fehlermeldung:

    Existing ivar 'companyName' for unsafe_unretained property 'companyName' must be __unsafe_unretained


    Danke!
  • nYmo schrieb:

    Jedoch bekomme ich eine Fehlermeldung beim kompilieren wenn ich bei der Property Deklaration das (Strong) vor dem NSString weg lasse.

    Du musst bei Propertys auf Objekte immer den Speicherwaltungstyp (z. B. retain, strong, assign) angeben.

    nYmo schrieb:

    In meinem Buch wird über das (Strong) nur beschrieben das dieser "modifier" aussagt das dies ein Zeiger zu einem Objekt ist das den Eigentum beansprucht.

    Welches Buch ist das denn?
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Du musst bei Propertys auf Objekte immer den Speicherwaltungstyp (z. B. retain, strong, assign) angeben.
    Achso dann sollte ich mir mal die Dokumentation zu den Speicherverwaltungstypen anschauen damit ich auch weis, was ich da angebe...

    macmoonshine schrieb:

    Welches Buch ist das denn?
    Objective-C Programming: The Big Nerd Ranch Guide

    Bin aber erst mit der hälfte durch vielleicht wird dort noch auf die Speicherverwaltungstypen eingegangen.



    Danke für die schnelle Hilfe!