小编mos*_*ic6的帖子

条件绑定的初始化程序必须具有Optional类型,而不是'String'

这是我在更新后遇到的一个有趣的问题 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)

nsurl swift swift2

30
推荐指数
1
解决办法
5万
查看次数

无法将'NSRange'(又名'_NSRange')类型的值转换为预期类型'Range <Index>'(又名'Range <String.CharacterView.Index>')

检查字符串字符的范围时出现此错误...

@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)

ios nsrange swift

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

无法调用非函数类型的值'((成功:Bool,错误:NSError?)throws - > Void)?)

我更新到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)

ios swift swift2

17
推荐指数
1
解决办法
2万
查看次数

Objective-C方法'controller:didChangeObject:atIndexPath:forChangeType:newIndexPath

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)

ios swift

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

二进制运算符'!='不能应用于'Bool'和'NilLiteralConvertible'类型的操作数

二进制运算符'!='不能应用于'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)

ios swift

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

函数产生预期类型 '(() -&gt; ())?'; 您的意思是用“()”来调用它吗?

函数产生预期类型 '(() -> ())?'; 您的意思是用“()”来调用它吗?

我收到上述错误。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)

xcode ios swift

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

标签 统计

swift ×6

ios ×5

swift2 ×2

nsrange ×1

nsurl ×1

xcode ×1