gpt4 book ai didi

objective-c - 在 Objective-C 中使用类扩展实现选择性可见性

转载 作者:太空狗 更新时间:2023-10-30 03:28:37 24 4
gpt4 key购买 nike

将类扩展放在它们自己的 .h 文件中并选择性地 #import 它们以获得类的方法和属性的不同级别的可见性是否有意义?如果这是个坏主意(或行不通),为什么?

最佳答案

这是一个好主意,也正是设计类扩展的原因(以及它们与类别不同的​​原因)。

也就是说,您可以:

Foo.h

@interface Foo:NSObject
...public API here...
@property(readonly, copy) NSString *name;
@end

Foo_FrameworkOnly.h

@interface Foo()
@property(readwrite, copy) NSString *name;
@end

Foo.m

#import "Foo.h"
#import "Foo_FrameworkOnly.h"

@interface Foo()
... truly implementation private gunk, including properties go here ...
@end

@implementation Foo
@synthesize name = name_;
@end

并且有效地拥有一个只对导入 Foo_FrameworkOnly.h 的实现文件公开只读和私有(private)读写的属性。

关于objective-c - 在 Objective-C 中使用类扩展实现选择性可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com