objective-c中,对对象赋值是否是为指针赋值?
我想大声告诉你
我想大声告诉你 2017-05-02 09:21:38
0
2
496

声明一个类

#import <Foundation/Foundation.h>

@interface Foo : NSObject <NSCoding>

@property(copy, nonatomic)NSString *strVal;
@property int intVal;
@property float floatVal;

@end

在main函数里

#import <Foundation/Foundation.h>
#import "Foo.h"
int main (int argc, char *argv[])
{
    @autoreleasepool {
        Foo *myfoo1 = [[Foo alloc] init];
        Foo *myfoo2;
        
        myfoo1.strVal = @"This is the string";
    }
    return 0;
    
}

这里的strVal既然是一个指向NSString的指针,为什么又可以给它赋值一个NSString对象?

我想大声告诉你
我想大声告诉你

répondre à tous(2)
大家讲道理

La modification de NSString est une copie, ce qui signifie que lors de la copie, un autre morceau de mémoire est ouvert, pas une copie de pointeur.

洪涛

Toutes les classes en Objective-c, les opérations après l'instanciation des objets sont des opérations de pointeur. @ renvoie un pointeur d'objet anonyme.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal