久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

<small id='mYwwq'></small><noframes id='mYwwq'>

    <bdo id='mYwwq'></bdo><ul id='mYwwq'></ul>
<i id='mYwwq'><tr id='mYwwq'><dt id='mYwwq'><q id='mYwwq'><span id='mYwwq'><b id='mYwwq'><form id='mYwwq'><ins id='mYwwq'></ins><ul id='mYwwq'></ul><sub id='mYwwq'></sub></form><legend id='mYwwq'></legend><bdo id='mYwwq'><pre id='mYwwq'><center id='mYwwq'></center></pre></bdo></b><th id='mYwwq'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='mYwwq'><tfoot id='mYwwq'></tfoot><dl id='mYwwq'><fieldset id='mYwwq'></fieldset></dl></div>

    <tfoot id='mYwwq'></tfoot><legend id='mYwwq'><style id='mYwwq'><dir id='mYwwq'><q id='mYwwq'></q></dir></style></legend>
      1. iOS KeychainItemWrapper 未更新

        iOS KeychainItemWrapper not updating(iOS KeychainItemWrapper 未更新)

        • <i id='7YUq9'><tr id='7YUq9'><dt id='7YUq9'><q id='7YUq9'><span id='7YUq9'><b id='7YUq9'><form id='7YUq9'><ins id='7YUq9'></ins><ul id='7YUq9'></ul><sub id='7YUq9'></sub></form><legend id='7YUq9'></legend><bdo id='7YUq9'><pre id='7YUq9'><center id='7YUq9'></center></pre></bdo></b><th id='7YUq9'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='7YUq9'><tfoot id='7YUq9'></tfoot><dl id='7YUq9'><fieldset id='7YUq9'></fieldset></dl></div>

            <bdo id='7YUq9'></bdo><ul id='7YUq9'></ul>
            <legend id='7YUq9'><style id='7YUq9'><dir id='7YUq9'><q id='7YUq9'></q></dir></style></legend>

            <small id='7YUq9'></small><noframes id='7YUq9'>

                    <tbody id='7YUq9'></tbody>
                  <tfoot id='7YUq9'></tfoot>
                • 本文介紹了iOS KeychainItemWrapper 未更新的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  限時送ChatGPT賬號..

                  我剛剛發現我的應用程序存在一個有趣的問題.在應用程序中,我將用戶的用戶名和密碼保存到鑰匙串中.

                  I just found an interesting problem with my app. In the app I am saving the user's user name and password to the keychain.

                  keychainWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyLoginPassword" accessGroup:nil];
                  
                  [keychainWrapper setObject:usernameField.text forKey:(id)kSecAttrAccount];
                  [keychainWrapper setObject:passwordField.text forKey:(id)kSecValueData];
                  

                  當這段代碼在 Debug 中運行時,它似乎工作得很好.它每次都會更新,我以后可以從鑰匙串中檢索項目.當它在 Distribution 中運行時,鑰匙串永遠不會更新.我已經驗證是的,這些代碼行在兩個版本中都被命中.我正在使用帶有 iOS5 SDK 的 Xcode 4.2,并在安裝了 iOS5 的 iPad 2 上運行該應用程序.

                  When this code is run in Debug it seems to work just fine. It updates each time and I can later retrieve the items from the keychain. When it is run in Distribution however the keychain never gets updated. I have verified that yes these lines of code are hit in both builds. I am using Xcode 4.2 with the iOS5 SDK and running the app on an iPad 2 with iOS5 installed.

                  推薦答案

                  我也遇到了這個問題,想了很久

                  I also had this problem, and it took me forever to figure out

                  有一個版本的KeychainWrapper"在 NSAssert 中浮動(除其他外).

                  There is a version of "KeychainWrapper" floating around that has it's SecItemUpdate within an NSAssert (among other things).

                  做這件事的人是個白癡!在為發布/分發而構建時,每個 NSAssert 都無效,這意味著代碼甚至無法運行.

                  Whoever did this is a moron!, when building for release/distribution every NSAssert is nullified, meaning that code doesn't even get run.

                  例如:

                  NSAssert(SecItemUpdate((CFDictionaryRef)updateItem, (CFDictionaryRef)tempCheck), @"Couldn't update the Keychain Item." );
                  

                  需要成為

                  OSStatus status = SecItemUpdate((CFDictionaryRef)updateItem, (CFDictionaryRef)tempCheck);
                  NSAssert(status == noErr, @"Couldn't update the Keychain Item." );
                  

                  注意實際的 SecItemUpdate 是如何移動到 NSAssert 之外的,而是檢查結果

                  Notice how the actual SecItemUpdate is moved outside the NSAssert, and instead the result is checked

                  重要提示:嘗試更新 kSecValueData 的值,而不指定 kSecAttrAccount 的值,也會導致斷言失敗.因此,如果您的意圖是存儲單個敏感數據字符串(例如信用卡號碼列表),請務必在 kSecAttrAccount 屬性中存儲一些帳戶名稱"文本,如下所示:

                  Important note: Attempting to update a value for kSecValueData, without also specifying a value for kSecAttrAccount, will cause the assertion to fail as well. So, if your intent is to store a single string of sensitive data (such as a list of credit card numbers), be sure to store some "account name" text in the kSecAttrAccount attribute, like so:

                  static NSString* kCardListXML = @"cardListXML";
                  static NSString* cardListAccountName = @"cardListAccount";
                  
                  -(void)setCardListXML:(NSString*)xml {
                    KeychainItemWrapper* wrapper =
                      [[KeychainItemWrapper alloc] initWithIdentifier:kCardListXML accessGroup:nil];
                    [wrapper setObject:cardListAccountName forKey:(id)CFBridgingRelease(kSecAttrAccount)];
                    [wrapper setObject:xml forKey:(id)CFBridgingRelease(kSecValueData)];
                  }    
                  
                  -(NSString*)getCardListXML {
                    KeychainItemWrapper* wrapper =
                      [[KeychainItemWrapper alloc] initWithIdentifier:kCardListXML accessGroup:nil];
                    [wrapper setObject:cardListAccountName forKey:(id)CFBridgingRelease(kSecAttrAccount)];
                    return [wrapper objectForKey:CFBridgingRelease(kSecValueData)];
                  }
                  

                  這篇關于iOS KeychainItemWrapper 未更新的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  How to animate a UIImageview to display fullscreen by tapping on it?(如何通過點擊動畫 UIImageview 以顯示全屏?)
                  To stop segue and show alert(停止 segue 并顯示警報)
                  iOS 5 storyboard, programmatically determine path(iOS 5 故事板,以編程方式確定路徑)
                  Icon already includes gloss effects(圖標已經包含光澤效果)
                  How does UIEdgeInsetsMake work?(UIEdgeInsetsMake 是如何工作的?)
                  UIProgressView and Custom Track and Progress Images (iOS 5 properties)(UIProgressView 和自定義跟蹤和進度圖像(iOS 5 屬性))
                  • <small id='3s6uk'></small><noframes id='3s6uk'>

                    <tfoot id='3s6uk'></tfoot>

                      <i id='3s6uk'><tr id='3s6uk'><dt id='3s6uk'><q id='3s6uk'><span id='3s6uk'><b id='3s6uk'><form id='3s6uk'><ins id='3s6uk'></ins><ul id='3s6uk'></ul><sub id='3s6uk'></sub></form><legend id='3s6uk'></legend><bdo id='3s6uk'><pre id='3s6uk'><center id='3s6uk'></center></pre></bdo></b><th id='3s6uk'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='3s6uk'><tfoot id='3s6uk'></tfoot><dl id='3s6uk'><fieldset id='3s6uk'></fieldset></dl></div>
                          <tbody id='3s6uk'></tbody>
                            <bdo id='3s6uk'></bdo><ul id='3s6uk'></ul>

                          • <legend id='3s6uk'><style id='3s6uk'><dir id='3s6uk'><q id='3s6uk'></q></dir></style></legend>
                          • 主站蜘蛛池模板: 日本不卡一区二区三区 | 欧美精品一区二区三区一线天视频 | 国产精品国产a | 午夜欧美一区二区三区在线播放 | 有码在线| 欧美在线一区视频 | 欧美成人一区二区 | 国产精品一区二区久久久久 | 97伊人| 欧美无乱码久久久免费午夜一区 | 99久久精品视频免费 | 曰批视频在线观看 | 国产精品一区二区三级 | 性一交一乱一透一a级 | 很黄很污的网站 | 成人在线不卡 | 91秦先生艺校小琴 | 精品国产亚洲一区二区三区大结局 | 99热播精品 | 一区二区三区四区电影 | 黄色片免费| 99热精品6| 久久久www成人免费精品 | 欧美综合一区二区三区 | www国产成人免费观看视频,深夜成人网 | 久久青青 | 久久精品国内 | 日本不卡一区二区三区在线观看 | 国产精品亚洲成在人线 | 九色av| 成人在线免费电影 | 91成人在线视频 | 啪啪免费| 欧美日批 | 国产精品自产拍 | 欧美成年黄网站色视频 | 欧美不卡一区二区三区 | 久久99精品久久久久久国产越南 | 国产麻豆乱码精品一区二区三区 | 大陆一级毛片免费视频观看 | 这里只有精品99re |