2015-07-10 29 views
3

有效通常在C#中,我用于在单独的类(名为'ExtensionMethods')中实现扩展方法并在项目中使用。IOS SWIFT:声明只在文件范围

在这里,我第一次迅速的iPhone应用程序,我需要实施一些扩展方法“字符串”类,但给我提供了这个错误

enter image description here

这可以完美兼容迅速游乐场,但不知道如何使用在一个真实的项目中。真的很感激,如果有人能指导我这个。谢谢。

+2

您的附加声明不应该是一个类里面,但*在文件范围*像有消息称。 :) – Moritz

+0

是的,因为你可以在图像中看到它们在'ExtensionMethods'类中......我不清楚这里的文件范围是什么意思。谢谢 – JibW

+1

再次阅读我的评论:我说他们*不应该像你那样在课堂上*。安东尼奥已经做出了很好的详细回答文件范围:代码的根级别,不在对象,类或任何内部。 – Moritz

回答

9

扩展必须在根级 - 不要将它们嵌入到类或其他类中。所以只写:

import UIKit 

extension String { 
    var doubleValue: Double { 
     ... 
    } 
} 

extension String { 
    func doubleValueT() -> Double { 
     ... 
    } 
} 

请注意,您也可以将它们合并成一个单一的扩展:

import UIKit 

extension String { 
    var doubleValue: Double { 
     ... 
    } 

    func doubleValueT() -> Double { 
     ... 
    } 
} 
+1

“扩展必须位于根级别”您是在哪里阅读的? –