2017-08-10 8 views
0

J'ai un textview que l'utilisateur peut modifier, lorsque j'essaie d'insérer le texte de la textview à une propriété locale de type Nsstring, j'ai obtenu cette propriété NSMallocBlock. quelle est la raison? Je vous remercie! c'est le defintaion de cartItemComment:insérer du texte de textview à chaîne retourner NSMallocBlock dans l'objectif chaîne c

@property (nonatomic, assign) NSString * cartItemComment; 

et c'est le code:

CartItem *cartItem = [[CartItem alloc]init]; 
cartItem.cartItemComment = itemRequestText.text; 

CartItem est un objet qui ont un cartItemComment de propriété, après ces lignes, je suis arrivé à NSMallocBlock cartItemComment.

another problem, i can get a weird string like this:

+0

aide Cant sans code. S'il vous plaît ajouter votre code ici –

+0

J'ai ajouté plus d'informations. Est-ce qu'il comprend maintenant? – yoc

+0

N ° 'itemRequestText.text' est nul? Pourriez-vous montrer la définition de 'cartItemComment'. Est-ce une propriété? fort et nonatomic? (Si vous mettez assign, clairement cela pourrait planter). Aussi, c'est une propriété NSString? Pourriez-vous montrer la trace de la pile de l'accident? Le message d'erreur entier? – Larme

Répondre

1

assign attribut de propriété s'applique aux types primitifs, il ne fait rien avec la référence d'objet. Lorsqu'un objet est affecté à cette propriété, il est désalloué (s'il n'est pas conservé par un autre objet) et tout ce qui reste est un pointeur vers la mémoire où il était auparavant. N'utilisez jamais assign pour stocker des objets.

weak est similaire à assign, avec la seule différence que lorsque l'objet référencé par cette propriété est désalloué (conserver le nombre atteint zéro), il est réglé sur nil, de sorte que vous aurait jamais un pointeur à la mémoire des ordures.

strong conserve l'objet et empêche son désallocation.

Votre propriété doit être déclarée comme ceci:

@property (nonatomic, strong) NSString *cartItemComment; 
+0

Merci pckill !! vous m'avez vraiment aidé !! – yoc