Swift

Swift:Plistが先に進みません。

このままだと、Yosemite正式リリース待ちの体勢です。
➡️ ほとんどgive upしていましたが、無事、クリアできました。続きは、明日、書きます。

これまでわかったことを整理しておきます。

  • NSDictionaryがなかなかObjective-cのサンプルのようにはいきません。

var wdropbox:String?        = “”
var wPlist:[NSDictionary]   = []
var wDic:[NSDictionary]     = []
wPlist      =  [NSBundle.mainBundle().infoDictionary!]
wdropbox    = wPlist[0].valueForKeyPath(“CFBundleShortVersionString”)  as? String
wdropbox    = wPlist[0].valueForKey(“CFBundleShortVersionString”)  as? String  上行と同じ結果が得られる。


  • NSArrayなら値が入ってきますが、Stringに戻せないで困っています。これまでNSArrayはなんとなくしか使っていないせい?

var wPlistX:[NSArray]       = []
wPlistX     = [[ NSBundle.mainBundle().infoDictionary! ][0].objectForKey(“CFBundleURLTypes”) as NSArray]    次の通りCFBundleURLTypesの配列が戻って来る
2.1===>wPlistX=[(
        {
        CFBundleTypeRole = Editor;
        CFBundleURLName = “Dropbox SDK”;
        CFBundleURLSchemes =         (
            “db-ctipwrk204b93t2”
        );
    }
)]
var wArray1:[NSArray] = [] NSArrayには値が入ってくる。
wArray1      = [wPlistX[0].valueForKey(“CFBundleURLSchemes”) as NSArray!] 次の通りCFBundleURLSchemesの配列が戻って来る
2.2===> wArray=[(
        (
        “db-ctipwrk204b93t2” これがまだStringで取り出せていない
    )
)] wArray=1


良さそうでダメだったもの

  1. wdropbox    = [wPlist[0].objectForKey(“CFBundleURLSchemes”)][0]?.objectForKey(“CFBundleURLTypes“) as String! nilが戻って来る。
  2. wdropbox    = wPlist[0].valueForKeyPath(“CFBundleURLTypes.CFBundleURLSchemes“) as String! フリーズ
  3. wdropbox    = wPlist[0].valueForKeyPath(“CFBundleURLTypes.CFBundleURLSchemes“) as? String nilが戻って来る。
  4. wdropbox    = wPlist[0].valueForKeyPath(“CFBundleURLTypes.CFBundleURLSchemes“) as String! フリーズ

次のような説明に早くたどり着いていたら、解決はもっと早かったかもしれません。やはり、調査不足・勉強不足です。

スクリーンショット 2014-10-15 10.58.45 スクリーンショット 2014-10-15 11.01.12

Categories: Swift, 技術