簡體   English   中英

在Swift中聲明Objective-C方法的問題

[英]Issue in declaring an objective-C method in Swift

我正在嘗試將FCOfflineQueue(一種用於在脫機時對網絡請求進行排隊的持久框架)與以Swift編寫的iOS應用一起使用。 我應該對FCOfflineQueue類進行子類化,並在我的子類中重寫以下方法-

- (BOOL)executeOperation:(int64_t)opcode userInfo:(NSDictionary *)userInfo;

在我自己從FCOfflineQueue子類化的隊列中,很難在Swift中進行聲明。 我正在做以下事情-

override func executeOperation(opcode: Int64, userInfo: NSDictionary) -> Bool

它說-此方法不會覆蓋其超類中的任何方法。

如果相反,我將執行以下操作-

@objc override func executeOperation(opcode: Int64, userInfo: NSDictionary) -> Bool

它說-具有選擇器'executeOperation:userInfo:'的重寫方法具有不兼容的類型'(Int64,NSDictionary)-> Bool'

我以為int64_t相當於Swift中的Int64 與轉換有關嗎?

任何幫助表示贊賞。

嘗試像這樣覆蓋:

override func executeOperation(opcode: Int64, userInfo: [NSObject : AnyObject]!) -> Bool {
    return false
}

當您將具有參數化類型的NSDictionary對象橋接到Swift字典時,所得字典的類型為[ObjectType]。 如果NSDictionary對象未指定參數化類型,則將其橋接到[NSObject:AnyObject]類型的Swift字典中。

https://developer.apple.com/library/mac/documentation/Swift/Conceptual/BuildingCocoaApps/WorkingWithCocoaDataTypes.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM