这是我在更新后遇到的一个有趣的问题 Swift 2.0
错误就if let url = URL.absoluteString行了
func myFormatCompanyMessageText(attributedString: NSMutableAttributedString) -> NSMutableAttributedString
{
// Define text font
attributedString.addAttribute(NSFontAttributeName, value: UIFont(name: "Montserrat-Light", size: 17)!, range: NSMakeRange(0, attributedString.length))
return attributedString
}
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
if let url = URL.absoluteString {
if #available(iOS 8.0, *) {
VPMainViewController.showCompanyMessageWebView(url)
}
}
return false
}
Run Code Online (Sandbox Code Playgroud) 检查字符串字符的范围时出现此错误...
@objc func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let shouldChange = false
let text = textField.text
var newString = text!.stringByReplacingCharactersInRange(range, withString: string) as? NSString
if newString.length > 14{
newString = newString.substringToIndex(14)
}
textField.text = newString.uppercaseString
return shouldChange
}
Run Code Online (Sandbox Code Playgroud) 我更新到Swift 2和Xcode 7并运行了迁移工具.然后我收到了很多错误.一个我坚持的是这个
func authorizeHealthKit(completion: ((success:Bool, error:NSError?) throws -> Void)?)
{
// 1. Set the types you want to read from HK Store
let healthKitTypesToRead = (array:[
HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount)
])
// 2. Set the types you want to write to HK Store
let healthKitTypesToWrite = (array:[
HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount)
])
// 3. If the store is not available (for instance, iPad) return an error and don't go on.
if !HKHealthStore.isHealthDataAvailable()
{
var error = NSError.self
if( completion != nil )
{
completion(success:false, error:&error) …Run Code Online (Sandbox Code Playgroud) Objective-C方法'controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:'由方法'controller(:didChangeObject:atIndexPath:forChangeType:newIndexPath :)提供'与可选需求方法'controller(:didChangeObject:atIndexPath:forChangeType:newIndexPath)冲突: )'in protocol'NSFetchedResultsControllerDelegate'
func controller(controller: NSFetchedResultsController, didChangeObject anObject: NSManagedObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?) {
if self.collectionView?.window == nil {
return
}
let change = NSMutableDictionary()
switch(type)
{
case .Insert:
change[NSNumber(unsignedLong:type.rawValue)] = newIndexPath
case .Delete:
change[NSNumber(unsignedLong:type.rawValue)] = indexPath
case .Update:
change[NSNumber(unsignedLong:type.rawValue)] = indexPath
case .Move:
change[NSNumber(unsignedLong:type.rawValue)] = NSArray(objects: indexPath!, newIndexPath!)
default:
break
}
self.objectChanges?.addObject(change)
}
Run Code Online (Sandbox Code Playgroud) 二进制运算符'!='不能应用于'Bool'和'NilLiteralConvertible'类型的操作数
if((object.isKindOfClass(NSDictionary))!= nil){
let paramString:NSMutableString = NSMutableString();
(obj as! NSArray).enumerateObjectsUsingBlock({ (object, idx, stop) -> Void in
if ((object.isKindOfClass(NSDictionary)) != nil){
let pair:NSDictionary? = object as? NSDictionary;
let textId:NSNumber? = pair?.objectForKey("TextId") as? NSNumber;
var content:NSString? = pair?.objectForKey("Content") as? NSString;
if ((content == nil) || (content?.length == 0) ) {
content = " ";
}
if ((textId != nil) && (content != nil)) {
paramString.appendFormat("%ld:%@\n", textId!.integerValue, content!);
}
}
});
Run Code Online (Sandbox Code Playgroud) 函数产生预期类型 '(() -> ())?'; 您的意思是用“()”来调用它吗?
我收到上述错误。Xcode 的自动修复没有帮助。
错误出现在self.performOnCommunicationQueue():
func getAuthParams(authClosure:((error:NSError?) -> ())?) {
logDebug("Starting sync session with Max device")
if let statusError = self.assertReady() {
logError("Start sync session failed with error: \(statusError)")
if (authClosure != nil) {
authClosure!(error: statusError)
}
} else {
self.performOnCommunicationQueue() {
let error:NSError?
// Set random starting byte
let oAbsTime:[UInt64] = [mach_absolute_time()]
let payload:NSData = NSData(bytes: oAbsTime, length: 8)
let absTime:UInt8 = UnsafePointer<UInt8>(payload.bytes).memory
self.randomCryptoByte = (0x01 | ( absTime & 0xfe))
}
}
func …Run Code Online (Sandbox Code Playgroud)