可选的type()不能用作boolean;测试'!= nil'而不是

时间:2015-11-16 12:37:45

标签: ios swift optional

更新

if (ABAddressBookGetAuthorizationStatus() == ABAuthorizationStatus.NotDetermined)
            {
                print("requesting access...")
                addressBook = !ABAddressBookCreateWithOptions(emptyDictionary,nil)
                ABAddressBookRequestAccessWithCompletion(addressBook,
                {success, error in
                    if success
                    {
                        self.getContactNames();
                    }
                    else
                    {
                        print("error")
                    }
                })
            }

在第二行,它的给出错误如下

enter image description here

如何解决上述问题?我对Swift很新。

1 个答案:

答案 0 :(得分:3)

您使用的方法是:

func ABAddressBookCreateWithOptions(_ options: CFDictionary!, _ error: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<ABAddressBook>!

返回值是可选的Unmanaged对象。因此,您无法在其前添加!。在值之前添加!只能用于Bool值。

如果您想强制它有价值,请在方法之后添加!