我在swift 2.1中遇到错误

时间:2015-11-30 01:28:20

标签: swift swift2.1

我得到的错误

  

表达式的类型是不明确的,没有更多的上下文

<form action="signatory.php" method="Post" role="form">
<input class="form-control " id="signatoryname" name="sig_name" placeholder="Name:" >
<input class="form-control " id="signatoryoffice" name="sig_office" placeholder="Office:">
</form>
  

&#39; stringByAppendingPathComponent&#39;不可用:使用   而是在NSURL上的ByAppendingPathComponent。

var recordSettings = [AVFormatIDKey : kAudioFormatAppleLossless,
        AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue,
        AVEncoderBitRateKey : 320000,
        AVNumberOfChannelsKey : 2,
        AVSampleRateKey : 44100.0 ]
  

无法强制解包非可选类型的值&#39; NSURL&#39;   错误说 - &gt;参数标签&#39;(contentsOfURL:,错误:)&#39;不符合   任何可用的重载。

 func getFileURL() -> NSURL {
    let path  = getCacheDirectory().stringByAppendingPathComponent(fileName)
    let filePath = NSURL(fileURLWithPath: path)
    return filePath!

1 个答案:

答案 0 :(得分:1)

好吧,编译器正在告诉你到底出了什么问题。

例如:

我得到的错误说“没有更多上下文的表达类型是模棱两可的”

var recordSettings = [AVFormatIDKey : kAudioFormatAppleLossless, AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, AVEncoderBitRateKey : 320000, AVNumberOfChannelsKey : 2, AVSampleRateKey : 44100.0 ]

recordSettings的类型在没有更多上下文的情况下是模糊的。这意味着编译器不确定recordSettings的类型应该是什么......你需要告诉它。像这样:

var recordSettings: [String: AnyObject] = [AVFormatIDKey : kAudioFormatAppleLossless, AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, AVEncoderBitRateKey : 320000, AVNumberOfChannelsKey : 2, AVSampleRateKey : 44100.0 ]

而且:

'stringByAppendingPathComponent' is unavailable: Use ByAppendingPathComponent on NSURL instead.

上述意思正是它所说的。方法stringByAppendingPathComponent不可用,您应该在byAppendingPathComponent上使用NSURL

而且:

Cannot Force unwrap value of non-optional type 'NSURl' 

同样,它意味着它所说的。您无法强行打开非可选类型。 “强制解包”意味着将!放在变量的末尾。

编译器正试图帮助您编写正确的代码。