objective-c中,对对象赋值是否是为指针赋值?
我想大声告诉你
我想大声告诉你 2017-05-02 09:21:38
[iOS讨论组]

声明一个类

#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对象?

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

全部回复(2)
大家讲道理

NSString的修饰是copy,说明复制时是又开辟的一块内存,不是指针复制。

PHP中文网

Objective-c里所有类,实例化对象后的操作,都是指针操作。@ 返回了一个匿名对象指针。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号