有些人可以帮我解释为什么下面的代码不起作用..我在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) 我创建了一个类似下面的枚举,我尝试使用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()函数返回的是什么类型?
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"
我正在使用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文件,但我想保持本地化内容和标记分开.
我知道带有问号的可选常量或变量需要感叹号才能访问其值.然后,我尝试使用以下代码检查它.
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的值.但是,我可以在没有标记的情况下访问它.这样对吗?我想知道出了什么问题.我误会可选吗?