搜尋

首頁  >  問答  >  主體

objective-c中,對物件賦值是否為指標賦值?

聲明一個類別

#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物件?

我想大声告诉你我想大声告诉你2886 天前553

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-05-02 09:23:38

    NSString的修飾是copy,表示複製時是又開闢的一塊內存,不是指標複製。

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-02 09:23:38

    Objective-c裡所有類,實例化物件後的操作,都是指標操作。 @ 回傳了一個匿名物件指標。

    回覆
    0
  • 取消回覆