小编Nat*_*ook的帖子

在swift中进行XML解析

有些人可以帮我解释为什么下面的代码不起作用..我在Xcode.1 Playground中测试它

let url:NSURL! = NSURL(fileURLWithPath:"file:///Users/sss/Documents/app.xml")

var xml = NSXMLParser(contentsOfURL: url)

xml?.parse()
Run Code Online (Sandbox Code Playgroud)

xml macos swift swift-playground

7
推荐指数
1
解决办法
4348
查看次数

我如何使用枚举的fromRaw()函数

我创建了一个类似下面的枚举,我尝试使用fromRaw()函数.

enum Test : Int {
    case a = 1
    case b, c
    func description() -> String{
        switch self {
        case .a:
            return "a"
        default:
            return String(self.toRaw())
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它适用于我这样使用的情况.bvalue.description()给我结果"2".

if let bvalue = Test.fromRaw(2) {
    bvalue.description()
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用它而没有If语句时,如下所示.它在第二行上给出了一个错误的通知,称"无效使用'()'来调用非函数类型String的值."

let bvalue = Test.fromRaw(2)
bvalue.description()
Run Code Online (Sandbox Code Playgroud)

我很困惑.If或if If语句有什么区别?为什么第二种方式不起作用?这个fromRaw()函数返回的是什么类型?

swift

4
推荐指数
1
解决办法
1961
查看次数

如何从Objective-C访问Swift中的枚举?

Objective-C中定义了一个全局枚举:

typedef enum {
     UMSocialSnsTypeNone = 0,
     UMSocialSnsTypeQzone = 10,
     UMSocialSnsTypeSina = 11,                 //sina weibo
} UMSocialSnsType;
Run Code Online (Sandbox Code Playgroud)

此代码设置平台的共享类型:

snsPlatform.shareToType = UMSocialSnsTypeDouban;
Run Code Online (Sandbox Code Playgroud)

在Swift中,我想获得平台的sharetype:

var snstype = snsPlatform!.shareToType
println(snstype)
Run Code Online (Sandbox Code Playgroud)

结果: UMSocialSnsType (has 1 child)

snstype.toRaw()
Run Code Online (Sandbox Code Playgroud)

错误: UMSocialSnsType does not have a member named "toRaw"

enums objective-c swift

4
推荐指数
1
解决办法
4168
查看次数

C#/ Razor - 从RazorEngine模板访问本地化的字符串资源

我正在使用RazorEngine填充CSHTML模板来构建动态HTML电子邮件.我需要发送多种语言的电子邮件,我想在我的模板中使用本地化的字符串资源来切换语言,如下所示:

@Resources.EmailTemplate.OrderNumberLabel
Run Code Online (Sandbox Code Playgroud)

如何指定RazorEngine使用的培养物?在拉入字符串时,它似乎总是使用默认文化.我尝试在解析之前设置线程文化而没有运气:

System.Threading.Thread.CurrentThread.CurrentCulture System.Globalization.CultureInfo.CreateSpecificCulture(culture);
Run Code Online (Sandbox Code Playgroud)

注意:我已经看到其他实现为每种语言使用了不同的CSHTML文件,但我想保持本地化内容和标记分开.

.net c# internationalization razor razorengine

3
推荐指数
1
解决办法
2431
查看次数

可以访问带有问号但没有感叹号的可选变量吗?

我知道带有问号的可选常量或变量需要感叹号才能访问其值.然后,我尝试使用以下代码检查它.

var aaa:String? = "3"
println("aaa = \(aaa!)")
Run Code Online (Sandbox Code Playgroud)

是.没关系.它在控制台输出上打印"3".我接受了下一次考试

var aaa:String? = "3"
println("aaa = \(aaa)")
Run Code Online (Sandbox Code Playgroud)

它还打印"3"没有任何错误消息.它运作良好.

我了解到Forced Unwrapping,需要感叹号才能访问Optional的值.但是,我可以在没有标记的情况下访问它.这样对吗?我想知道出了什么问题.我误会可选吗?

swift

1
推荐指数
1
解决办法
573
查看次数