2015-11-05 61 views
-1

我試圖將一些Objective-C代碼轉換爲Swift,但遇到問題。將一些Objective-C代碼轉換爲Swift

繼承人的代碼:

@property (nonatomic, strong) NSMutableDictionary* loadedNativeAdViews; 
@synthesize loadedNativeAdViews; 

... 

loadedNativeAdViews = [[NSMutableDictionary alloc] init]; 

... 

nativeAdView = [loadedNativeAdViews objectForKey:@(indexPath.row)]; 

我怎麼會寫這篇文章迅速?

回答

1

NSDictionary橋接到斯威夫特本機類Dictionary,所以無論你在Objective-C使用NSDictionary你可以使用它。有關詳細信息,請參閱Working with Cocoa Data Types apple文檔。

Swift是類型安全的,因此您必須指定您正在使用的鍵和字典中的值的類型。

假設你使用Int該鍵上的字典存儲UIView S:

// Declare the dictionary 
// [Int: UIView] is equivalent to Dictionary<Int, UIView> 
var loadedNativeAdViews = [Int: UIView]() 

// Then, populate it 
loadedNativeAdViews[0] = UIImageView() // UIImageView is also a UIView 
loadedNativeAdViews[1] = UIView() 

// You can even populate it in the declaration 
// in this case you can use 'let' instead of 'var' to create an immutable dictionary 
let loadedNativeAdViews: [Int: UIView] = [ 
    0: UIImageView(), 
    1: UIView() 
] 

然後訪問存儲在字典中的元素:

let nativeAdView = loadedNativeAdViews[indexPath.row]