Objective-C 相当于 Swift 中的内部(集合)

Objective-C equivalent of internal(set) in Swift

Swift 中的 internal(set) 访问修饰符允许在同一模块内更改 属性,但不能从外部更改。我很好奇它是否具有 Objective-C 等效项,以及我如何实现它。

据我所知,Objective-C 中没有对应项。

但是您可以隐藏模块(框架)之外的setter。例如:

MyObject.h: 作为Public header

#import <Foundation/Foundation.h>

@interface MyObject : NSObject
// `readonly` for public
@property (strong, nonatomic, readonly) NSString *myProp;
@end

MyObject-Internal.h:作为 项目 header

#import "MyObject.h"

@interface MyObject ()
// NOT `readonly` for internal
@property (strong, nonatomic) NSString *myProp;
@end

然后,您可以在模块内的.m代码中使用MyObject-Internal.h