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
。
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
。