diff -r 6fd9177eb6da -r 3af1d1c0ceb5 MYKeychainItem.m --- a/MYKeychainItem.m Sun Apr 19 00:01:41 2009 -0700 +++ b/MYKeychainItem.m Sun Apr 19 21:19:35 2009 -0700 @@ -97,8 +97,10 @@ err = SecItemDelete(self.asQuery); #else err = SecKeychainItemDelete((SecKeychainItemRef)_itemRef); + if (err==errSecInvalidItemRef) + return YES; // result for an item that's not in a keychain #endif - return err==errSecItemNotFound || err==errSecInvalidItemRef || check(err, @"SecKeychainItemDelete"); + return err==errSecItemNotFound || check(err, @"SecKeychainItemDelete"); } @@ -225,3 +227,27 @@ return YES; } #endif + + + +/* + Copyright (c) 2009, Jens Alfke . All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted + provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions + and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions + and the following disclaimer in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRI- + BUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */