2015-02-09 74 views
0

我试图创建的dictionary<String,NSImage>一个阵列,
所以我这样做:斯威夫特:数组[字符串:NSImage中]

class PreferencesController : NSObject{ 

var generalImage = NSImage(named: "NSAdvanced"); 
var textEditingImage = NSImage(named: "NSFontPanel"); 
var GUIImage = NSImage(named: "NSColorPanel"); 

var preferencesOptionTableList : NSMutableArray = [ 
    ["name":"General"], 
    ["name":"Text Editing"], 
    ["name":"GUI"]]; 

var preferencesOptionTableImageList : [[String:NSImage]] = [["image":textEditingImage]]; 
} 

但我得到这个错误:

PreferencesController.Type does not have a member named 
'textEditingImage' 

请帮帮我我还是不知道在一小时的搜索后要做什么

回答

0

我看到两个可能的问题:

  1. textEditingImage是最有可能的一个可选NSImage中?,而不是NSImage,当你将它放到字典中时,这很可能是一个问题。我怀疑你需要先解开它。
  2. VAR preferencesOptionTableList:NSMutableArray的...应分为声明和定义和定义搬到初始化,可能是这样的:

    class PreferencesController: NSObject { 
    
    
    var textEditingImage:NSImage = NSImage(named: "NSFontPanel")! 
    
    var preferencesOptionTableImageList : [[String:NSImage]] 
    
    override init() { 
        preferencesOptionTableImageList = [["image":textEditingImage]] 
        super.init() 
    } 
    } 
    
+0

您好,感谢的答复。我试过这个“var preferencesOptionTableImageList = [NSDictionary(object:textEditingImage?,forKey:”image“)]; ”但仍然是相同的错误 – 2015-02-09 04:22:54

+0

看到我的新更新(未经测试)的例子。 – MirekE 2015-02-09 04:25:32

+0

@戚昊燕,加个?在一个可选的结束时只解开链接事件。尝试var textEditingImage = NSImage(名为:“NSFontPanel”)! – TheCodingArt 2015-02-09 04:25:49