objective-c - 我可以像在 Objective-C 中那样为 Swift 类的属性定义方法吗?

标签 objective-c swift properties

是否可以为 Swift 类的属性定义方法

例如,我在 Objective-C 中有一个名为 Test 的类,这个类有一个名为 testPropertyNSString 类型的属性

测试.h

@interface Test : NSObject

@property (nonatomic, readonly) NSString *testProperty;

@end

我在这个属性的实现中定义了一个 getter 方法:

测试.m

#import "Test.h"

@implementation Test

-(NSString*)testProperty
{
    return @"testing property like method";
}

@end

我如何在 Swift 中做同样的事情?如果在 Swift 中创建类,

import UIKit

class Test: NSObject {
    var testProperty : String?

    func testProperty() -> String {
       return "testing property like method"
    }

}

然后我收到一个错误:

"Invalid redeclaration of testProperty()"

最佳答案

这些被称为计算属性 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html

例子

var testProperty: String {
    return "testing property like method"
} 

子类

class ClassA: NSObject {
    var testProperty: String {
        return "This is Class A"
    }
}

class ClassB: ClassA {
    override var testProperty: String {
        return "This is Class B"
    }
}

let test = ClassB()
print(test.testPropery) // prints "This is Class B"

关于objective-c - 我可以像在 Objective-C 中那样为 Swift 类的属性定义方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361352/

相关文章:

ios - 错误解析 JSON 响应 Cocoa 错误 3840

objective-c - 奇怪的 XCode 4.2 和核心数据行为

ios - 以数组为值的 Swift 字典

javascript - Angular 错误

swift - 如何获取 Swift 中的所有静态属性?

ios - 在 IOS 中迭代 NSDictionary 和计时事件

javascript - 如何使用本地 Objective-C 方法从本地 HTML5 文件中的 javascript 函数调用本地 Objective-C 方法,反之亦然?

swift - WKWebView:如何禁用防止跨站点跟踪?

ios - 静态成员不能用于协议(protocol)元类型 Swift

java - 在属性文件中同时使用\u.... 和 html 实体?