Objective-C相当于Swift中的internal(set)

时间:2015-02-03 12:43:27

标签: objective-c swift setter access-control

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

1 个答案:

答案 0 :(得分:1)

AFAIK,Objective-C中没有等效物。

但是你可以隐藏模块外部的setter(Framework)。例如:

MyObject.h公开标题

#import <Foundation/Foundation.h>

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

MyObject-Internal.h项目标题

#import "MyObject.h"

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

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