Swift 重写类方法

2 篇文章 0 订阅

我有个Swift的类NFSRacingFinishedHintView继承于Objective-C的类BaseXibView, 声明如下:

#import <UIKit/UIKit.h>

@interface BaseXibView : UIView
+ (id)loadFromXib;
@end

#import "BaseXibView.h"

@implementation <span style="font-family: Arial, Helvetica, sans-serif;">BaseXibView</span>

- (void)dealloc
{
    ITTDINFO(@"%@ is dealloced!", [self class]);
}

+ (id)loadFromXib
{
    return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil] firstObject];
}
@end

</pre><pre code_snippet_id="437407" snippet_file_name="blog_20140728_4_634236" name="code" class="objc">NFSRacingFinishedHintView定义如下:
import UIKit
class NFSRacingFinishedHintView: ITTMaskActivityView {

     var rank:Int!{
        didSet{
            self.rankLabel.text = "\(rank)";
        }
    }
    
    @IBOutlet weak var rankLabel: UILabel!
    
    init(coder aDecoder: NSCoder!) {
        super.init(coder: aDecoder)
    }
    
    init(frame: CGRect) {
        super.init(frame: frame)
        // Initialization code
    }

    func setRank(rank:Int) {
        self.rank = rank
    }
    
    override class func loadFromXib() -> AnyObject {
        var objcts:NSArray = NSBundle.mainBundle().loadNibNamed("NFSRacingFinishedHintView", owner: nil, options: nil);
        return objcts.firstObject as NFSRacingFinishedHintView;
    }
    /*
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func drawRect(rect: CGRect)
    {
        // Drawing code
    }
    */
}


Swift中类方法使用class关键字,重写用override关键字,由于在Swift中[self class]是不能使用的,所以我在这里直接使用了硬编码。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值