簡體   English   中英

從swift向NSMutableArray添加字典

[英]Adding a dictionary to NSMutableArray from swift

我有一個Obj-c超類,

@property (strong, nonatomic) NSMutableArray *sectionChanges;

在Swift中,我試圖向其中添加一個字典:

self.sectionChanges.addObject([NSFetchedResultsChangeType.Insert: 1])

我們得到

'AnyObject' does not have a member named 'Key'

我嘗試了很多選擇:

self.sectionChanges.addObject([NSFetchedResultsChangeType.Insert: 1] as NSDictionary)

將錯誤更改為

Type 'NSFetchedResultsChangeType' does not conform to protocol 'NSCopying'

然后我嘗試:

self.sectionChanges.addObject([Int(NSFetchedResultsChangeType.Insert): 1] as NSDictionary)

並得到:

Cannot invoke 'init' with an argument of type 'NSDictionary'

用完選項...然后,Obj-c中的相同代碼很簡單:

[self.sectionChanges addObject:@{@(type): @(sectionIndex)}];

“ Swift會將標有NS_ENUM宏的所有C樣式枚舉作為Swift枚舉導入。”

摘錄自:Apple Inc.“將Swift與Cocoa和Objective-C結合使用。” iBooks。 https://itun.es/tw/1u3-0.l

因此NSFetchedResultsChangeType現在是Swift枚舉,您不能將其傳遞給Objetive-C。

您可能要嘗試以下操作:

self.sectionChanges.addObject([NSFetchedResultsChangeType.Insert.rawValue: 1])

暫無
暫無

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

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