সংরক্ষিত NSUserDephaults দেখার সহজ উপায়?


225

NSUserDefaultsসরাসরি যা সংরক্ষণ করা হয়েছে তা দেখার কোনও উপায় আছে ? আমি দেখতে চাই যে আমার ডেটা সঠিকভাবে সংরক্ষণ হয়েছে কিনা।


3
আপনার অ্যাপ্লিকেশন ডিরেক্টরিটির অবস্থান পেতে এটি ব্যবহার করুন: সেই অবস্থান থেকে মুদ্রণ করুন (এনএসহোমডাইরেক্টরি ()) লাইব্রেরি> পছন্দসমূহ> <yourappsBundleName.plist> এ যান যেখানে NSUserDephaults আপনার ডেটা সংরক্ষণ করছে is
ববি

উত্তর:


162

আপনি যদি যান তবে আপনি সিমুলেটারে আপনার অ্যাপ্লিকেশনটির জন্য পিলিস্ট ফাইলটি খুঁজে পেতে পারেন:

/ ব্যবহারকারী / আপনার ব্যবহারকারীর নাম / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / <সিম সংস্করণ> / অ্যাপ্লিকেশন

এই ডিরেক্টরিতে জিইউডির নামের একাধিক ডিরেক্টরি রয়েছে। আপনি যদি কয়েকটি অ্যাপে কাজ করছেন তবে তাদের মধ্যে কয়েকটি থাকবে। সুতরাং আপনার অ্যাপ্লিকেশন বাইনারি সন্ধান করতে হবে:

find . -name foo.app
./1BAB4C83-8E7E-4671-AC36-6043F8A9BFA7/foo.app

তারপরে জিইউইডি ডিরেক্টরিতে লাইব্রেরী / পছন্দসমূহ ডিরেক্টরিতে যান। তাই:

cd 1BAB4C83-8E7E-4671-AC35-6043F8A9BFA7/Library/Preferences

আপনার দেখতে এমন একটি ফাইল খুঁজে পাওয়া উচিত:

<Bundle Identifier>.foo.pList

এটি পিএলিস্ট সম্পাদকটিতে খুলুন এবং আপনার হৃদয়ের সামগ্রীতে স্থির মানগুলি ব্রাউজ করুন।


12
আমি পেয়েছি এটি এক্সকোডের পরবর্তী সংস্করণগুলিতে পরিবর্তিত হয়েছে। আপনি এখন এটি ব্যবহারকারীর পরিবর্তে বর্তমান আইওএস সংস্করণ নম্বর অনুসারে একটি ডিরেক্টরিতে এটি খুঁজে পাবেন - যেমন / ব্যবহারকারী / আপনার ব্যবহারকারীর নাম / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / 4.3 / অ্যাপ্লিকেশন
নেভস্টার

জবর ... মনে হচ্ছে যে যদি আপনার সাথে OCMock / SenTestingKit ইউনিট টেস্টিং করছেন NSUserDefaults, তারপর NSUserDefaultsএকটি .plist ফাইলে স্থায়ী নেই বরং মেমরি পরিচালিত ছিল: stackoverflow.com/questions/6193597/...
ma11hew28

ইতিমধ্যে ইনস্টল করা অ্যাপ্লিকেশনটির জন্য আমি কীভাবে এটি দেখতে পারি? আমার ক্লায়েন্ট অ্যাপস্টোর থেকে অ্যাপ্লিকেশনটি ডাউনলোড করেছেন এবং কিছু ভুল। আমাকে NSUserDefaults ফাইলটি পরীক্ষা করা দরকার
ডিজেল

আপনার ক্লায়েন্ট - যদি আপনি তার সাথে কথা বলতে পারেন এবং তিনি কিছুটা জ্ঞান অর্জন করতে পারেন - ফোনভিউয়ের মতো একটি সরঞ্জাম তার ফোন ফাইল সিস্টেমে অ্যাক্সেস পেতে এবং ফাইলটি আপনার কাছে প্রেরণের জন্য ফোনটি অনুলিপি করতে পারে।
ড্যানিয়েল শেন্লার

13
পথটি এতে পরিবর্তিত হয়েছে: Library / গ্রন্থাগার / বিকাশকারী / কোরসিমুলেটর / ডিভাইসগুলি
ব্রেইনওয়্যার

355

আপনি লগতে সমস্ত বর্তমান এনএসইউসার ডেফাল্ট মুদ্রণ করতে পারেন:

জাস্ট কীগুলি:

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]);

কী এবং মানসমূহ:

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

1
THX, এইটি আরও দক্ষ ~
অ্যাকোস্টিক

3
অ্যাপল এর জন্য এক্সকোডে একটি সাধারণ দর্শক তৈরি করতে পারে। প্লাস্ট ভিউয়ারের মতো। তবে না, তারা এটিকে সহজ করতে চায় না।
জেনকোড

78

সুইফটে আমরা নিম্নলিখিতটি ব্যবহার করতে পারি: -

সুইচ 3.x এবং 4.x

সমস্ত কী এবং মান পাওয়ার জন্য:

for (key, value) in UserDefaults.standard.dictionaryRepresentation() {
    print("\(key) = \(value) \n")
}

ব্যবহারকারীর ডিফল্টগুলির সম্পূর্ণ অভিধানের উপস্থাপনা পুনরুদ্ধারের জন্য:

print(Array(UserDefaults.standard.dictionaryRepresentation()))

কীগুলি পুনরুদ্ধার করার জন্য:

// Using dump since the keys are an array of strings.
dump(Array(UserDefaults.standard.dictionaryRepresentation().keys))

মান পুনরুদ্ধারের জন্য:

আমরা এখানেও ডাম্প ব্যবহার করতে পারি, তবে এটি মান অ্যারেতে প্রতিটি উপাদানটির সম্পূর্ণ উত্তরাধিকারের স্তরক্রম ফিরিয়ে দেবে। যদি বস্তুগুলি সম্পর্কে আরও তথ্যের প্রয়োজন হয় তবে ডাম্প ব্যবহার করুন, অন্যথায় সাধারণ মুদ্রণ বিবৃতিটি নিয়ে এগিয়ে যান।

// dump(Array(UserDefaults.standard.dictionaryRepresentation().values))
print(Array(UserDefaults.standard.dictionaryRepresentation().values))

সুইফট 2.x

ব্যবহারকারীর ডিফল্টগুলির সম্পূর্ণ অভিধানের উপস্থাপনা পুনরুদ্ধারের জন্য:

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation())

কীগুলি পুনরুদ্ধার করার জন্য:

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys.array)

মান পুনরুদ্ধারের জন্য:

print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().values.array)

40

আপনি অ্যারেতে প্রতিটি কী-এর মানগুলি পরীক্ষা করতে পারেন by

[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]

3
এটি ডিবাগারে এই কমান্ডটি ব্যবহার করেও কাজ করেছিল: (এলএলডিবি) "পো [[[[এনএসউসারডেফল্টস স্ট্যান্ডার্ড ইউজারডেফাল্টস] ডিকশনারিপ্রেসনেশন] অল কি]]"
এথন পার্কার

21

সিমুলেটারে চলার সময় আমি কখনও কখনও নীচের স্নিপেটটি আমার NSUserDephaults ফাইলের অবস্থান মুদ্রণ করতে ব্যবহার করি

এনএসআরাই * পাথ = এনএসএস অনুসন্ধানপথের নির্দেশিকাআইডোমাইনস (
   এনএসলিবারি ডিরেক্টরী, এনএসউজারডোমাইনমাস্ক, ইয়েস);
এনএসএসস্ট্রিং * ফোল্ডার = [পাথ অবজেক্টএটিআইডেক্স: 0];
এনএসএলগ (@ "আপনার এনএসউসারডেফল্টগুলি এই ফোল্ডারে সংরক্ষণ করা হয়েছে:% @ / পছন্দসমূহ", ফোল্ডার);

এটি পছন্দসই ফোল্ডারে পাথ দেয়

আপনার এনএসউসারডেফল্টগুলি এই ফোল্ডারে সংরক্ষণ করা হয়েছে: / ব্যবহারকারী / দুর্গ / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / ব্যবহারকারী / অ্যাপ্লিকেশনস / বিসি 5056 এ0-এফ 46 বি -4 এফ 1-এ 6ডিসি -3 এ 7 ডিএবি 984960 / গ্রন্থাগার / পছন্দসমূহ

আপনার এনএসউসারডেফল্টস ফাইলটি পছন্দসই ফোল্ডারে অবস্থিত এবং আপনার উপসর্গ এবং অ্যাপ্লিকেশন নাম অনুসারে নামকরণ করা হয়েছে যেমন

dk.castleandersen.dreamteam.grid.plist

আমি প্রকৃত ডিভাইসের ক্ষেত্রেও একই হতে পারে বলে আশা করি।


আমি এই প্রতিক্রিয়া পছন্দ। এটি স্থিতিশীল এবং সর্বদা কাজ করবে আশা করি!
লুসিওয়েনেরিকো

7

সহজ, যেহেতু প্লাস্ট ফাইলের নাম <app-bundle-identifier>.plist, আপনি findএর পথটি সন্ধান করতে কমান্ডটি ব্যবহার করতে পারেন । আপনি যদি পুরো কম্পিউটারটি অনুসন্ধান করেন তবে এটি খুব দীর্ঘ সময় নিতে পারে, তাই আপনাকে ~/Library/Developer/CoreSimulatorএক্সকোড 6 এর মতো একটি ভাল সুযোগ বাছাই করতে হবে ।

উদাহরণ:

find ~/Library/Developer/CoreSimulator -type f -name com.awesome.app.plist

আউটপুটটি এরকম কিছু হবে ...

/Users/hlung/Library/Developer/CoreSimulator/Devices/B61913F6-7D7C-4E45-AE2F-F45220A71823/data/Containers/Data/Application/E4CC51CF-11E5-4168-8A74-6BAE3B89998F/Library/Preferences/com.awesome.app.plist

এবং সেখান থেকে আপনি openকমান্ড ব্যবহার করতে পারেন । অথবা আপনি যদি আইটার্ম 2 ব্যবহার করেন তবে এটি খোলার পথে কমান্ড ক্লিক করুন।


7

সুইফটে ৪.০

//func dictionaryRepresentation() -> [String : AnyObject]

কারণ অভিধানআনসুজারডেফাল্টস স্ট্যান্ডার্ড ইউজারডেফল্টস () স্ট্রার্ড: যেকোনওজেক্ট] এর উপস্থিতি

আমরা এটি একটি নিক্ষেপ NSDictionary। তারপরে এটি বন্ধনী '()' এ চারপাশে রাখার মাধ্যমে আমাদের .allKeys বা .Avalues ​​কল করার অনুমতি দেবে ঠিক যেমন আপনি কোনও এনএসডিকোরিয়ানে আছেন

 print((UserDefaults.standard.dictionaryRepresentation() as NSDictionary).allKeys)

6

কোড নীচে ব্যবহার করুন।

NSLog(@"NSUserDefault: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

উজ্জ্বল! আকর্ষণীয় কীভাবে সেরা উত্তরগুলি সাধারণত সংক্ষিপ্ত হয়। কদাচিৎ টার্মিনাল মোডে ডিরেক্টরিতে নেভিগেট করা হয়। স্পষ্টতই, গিক্সটি পিছনের দরজার কাছে যাওয়ার মতো, সম্ভবত তাদের মধ্যে গোপন হ্যাকার রয়েছে?
জন

ধন্যবাদ, তবে তোমাকে পাচ্ছি না আপনি কি বলতে চান?
জনাব জাভেদ মুলতানি

5

জন্য OS X এর অ্যাপ্লিকেশন , পরিবর্তে অ্যাপ্লিকেশানের অক্ষমতা plist ফাইল খুঁজে বের করার, এটা সহজ ব্যবহার করা defaultsকমান্ড লাইন ইউটিলিটি।

NAME এর

 defaults -- access the Mac OS X user defaults system

সংক্ষিপ্তসার

 defaults [-currentHost | -host hostname] read [domain [key]]

 defaults [-currentHost | -host hostname] read-type domain key

 defaults [-currentHost | -host hostname] write domain { 'plist' | key 'value' }

 defaults [-currentHost | -host hostname] rename domain old_key new_key

 defaults [-currentHost | -host hostname] delete [domain [key]]

 defaults [-currentHost | -host hostname] { domains | find word | help }

বর্ণনা

defaultsব্যবহারকারীদের একটি কমান্ড-লাইন শেল থেকে ম্যাক ওএস এক্স ব্যবহারকারী ডিফল্ট পড়তে, লিখতে এবং মুছতে দেয়। ম্যাক ওএস এক্স অ্যাপ্লিকেশন এবং অন্যান্য প্রোগ্রামগুলি ডিফল্ট সিস্টেমটি ব্যবহার করে ব্যবহারকারীর পছন্দসমূহ এবং অন্যান্য তথ্য রেকর্ড করতে ব্যবহার করতে হবে যা অ্যাপ্লিকেশনগুলি চলমান না থাকলে অবশ্যই বজায় রাখতে হবে (যেমন নতুন নথির জন্য ডিফল্ট ফন্ট, বা কোনও তথ্য প্যানেলের অবস্থান)। এই তথ্যগুলির বেশিরভাগটি একটি অ্যাপ্লিকেশনটির পছন্দসমূহ প্যানেলের মাধ্যমে অ্যাক্সেসযোগ্য তবে এর কিছু নয় যেমন তথ্য প্যানেলের অবস্থান। আপনি এই তথ্য অ্যাক্সেস করতে পারেনdefaults

উদাহরণ:

$ defaults read com.apple.Safari
{
    AutoplayPolicyWhitelistConfigurationUpdateDate = "2018-08-24 17:33:48 +0000";
    AutoplayQuirksWhitelistConfigurationUpdateDate = "2018-08-24 17:33:48 +0000";
    DefaultBrowserPromptingState2 = 4;
    ...

4

এক্সকোড 7 এর জন্য

এনএসউসারডেফল্টস স্ট্যান্ডার্ড ডেফল্টগুলি এখানে সংরক্ষণ করা হয়:

/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Data/Application/{UUID}

স্যুট / অ্যাপ্লিকেশন গোষ্ঠীর জন্য এনএসইউসারডেফল্টগুলি এখানে সঞ্চিত রয়েছে:

/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UUID}/data/Containers/Shared/AppGroup/{UUID}/Library/Preferences/{GROUP_NAME}.plist

আমি https://github.com/scinfu/NCSimulatorPlugin ব্যবহার করার পরামর্শ দেব কারণ আজকাল সমস্ত কিছু ইউআইডি-র পিছনে রয়েছে এবং এটি খুঁজে পাওয়ার ব্যথা। এটি আপনার সিমুলেটর অ্যাপ্লিকেশন ডিরেক্টরিগুলিতে সহজে অ্যাক্সেসের অনুমতি দেয়।


2

আমি আরও ভাল উপস্থাপনের জন্য মরিওনের পরামর্শের ভিত্তিতে এই পদ্ধতিটি তৈরি করেছি। কল করে এটি ব্যবহার করুন[self logAllUserDefaults]

- (void) logAllUserDefaults
{
    NSArray *keys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];
    NSArray *values = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allValues];
    for (int i = 0; i < keys.count; i++) {
        NSLog(@"%@: %@", [keys objectAtIndex:i], [values objectAtIndex:i]);
    }
}

2
আমি কি প্রস্তাব দিতে পারি যে আপনি সেই ফাংশনটিকে "logAllUserDefaults" কল করুন কারণ এটি ডিফল্টগুলি আসলে "পায়" না?
মার্ক্রিকার্ট

ডান, @ মার্ক্রিক্ট। সম্ভবত কেউ এ থেকে একটি অভিধান তৈরি করে তা ফিরিয়ে দিতে পারে।
জুলিয়ান এফ ওয়েইনার্ট

1
অথবা কেবল .. NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] debugDescription]);(। প্রায় হিসাবে উপরে উত্তর টপ ভোট)
matsr

2

সিমপোল্ডার 2 নামে পরিচিত ম্যাক অ্যাপটির সন্ধান করুন । এটি মেনু বারে বাস করে এবং আপনার ব্যবহৃত সমস্ত সিমুলেটর তালিকাভুক্ত করে এবং তারপরে আপনার প্রতিটি অ্যাপ্লিকেশন দেখায়। একটি নির্বাচন করুন এবং আপনি একটি নতুন ফাইন্ডার উইন্ডো পেয়েছেন, ইতিমধ্যে অ্যাপ্লিকেশনটির ডিরেক্টরিতে খোলা। এটি আপনার অ্যাপ্লিকেশন এবং এর সমস্ত ডিরেক্টরি খুঁজে পাওয়া অত্যন্ত সহজ করে তোলে। এটি একটি বিশাল সময় সাশ্রয়কারী (এবং আমি সহজেই লেখককে দান করেছি)।


2

সিমুলেটর অ্যাপ

এই শেল স্ক্রিপ্টটি অ্যাপ্লিকেশনটির নামের জন্য অনুসন্ধান করে , বান্ডেল আইডিটি অর্জন করে এবং প্লিস্ট ফাইলযুক্ত ফোল্ডার খুলুন

#!/bin/bash

appname="$1"
[ -z $appname ] && read -p "Application name : " appname

apppath=$(find ~/Library/Developer/CoreSimulator/Devices/ -name "$appname.app" -print -quit)
if [[ ! -z $apppath ]]; then
    appbundle=$(osascript -e "id of app \"$apppath\"")
    find ~/Library/Developer/CoreSimulator/Devices/ -name "$appbundle.plist" -exec bash -c 'open "$(dirname "$1")"' -- {} \;
else
    echo "No application found by that name: $appname.app"
fi

বর্ধিত স্ক্রিপ্ট সংস্করণ

ব্যবহার: iphone-app-folder "My App"

#!/bin/bash
appname="$1"
[ -z "$appname" ] && read -p "Application name : " appname

apppath=$(find ~/Library/Developer/CoreSimulator/Devices -name "$appname.app" -print -quit)
if [[ ! -z $apppath ]]; then
    appbundle=$(osascript -e "id of app \"$apppath\"")
    echo "Found app $appname (${appbundle})"
    echo -e "\033[1;30m$apppath\033[0m"
    plists=$(find ~/Library/Developer/CoreSimulator/Devices -name "$appbundle.plist" -print -quit)
    count=$(echo plists | wc -l | sed "s/ //g")
    if [[ $count -eq 1 ]] && [[ -f "$plists" ]]; then
        echo -e "\033[1;32mUserDefaults found for $appname\033[0m"
        echo -e "\033[1;30m$plists\033[0m"
        plistutil -i "$plists"
        /usr/bin/open $(dirname "$plists")
    elif [[ ${#plists} -gt 0 ]]; then
        echo -e "\033[1;32mUserDefaults found for $appname\033[0m"
        i=1
        while read line; do
            echo "[${i}] ${line} "
            i=$((i+1))
        done < <(echo "$plists")
        echo
        read -p "Select defaults to read: [1-${count}] " choice
        plist=$(echo ${plists} | sed -n "${choice}p")
        plistutil -i "$plist"
        /usr/bin/open $(dirname "$plist")
    else
        echo -e "\033[31mNo UserDefaults plist found for $appname\033[0m"
    fi
else
    echo -e "\033[31mNo application found by that name: $appname.app\033[0m"
fi

অ্যাপ্লিকেশনটি আমার অ্যাপ (com.organisation.Myapp) / ব্যবহারকারী / প্রতিষ্ঠান / গ্রন্থাগার / বিকাশকারী / কোরসিমুলেটর / ডিভাইসগুলি / 3E4C8DC3-6FF4-428F-A624-B78DBE0B8C83 / ডেটা / ধারক / বান্ডেল / অ্যাপ্লিকেশন / 960A5232-219D-4C46-8CA3- পাওয়া গেছে 01E259D8DDAD / আমার অ্যাপ.এপ

আমার অ্যাপ্লিকেশনটির জন্য ব্যবহারকারীর ডেফাল্টগুলি পাওয়া গেছে

ম্যাক অ্যাপ

defaults read com.bundleid.app

1

সুইফটে ২.২

let path = NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)
let folder = path[0]
NSLog("Your NSUserDefaults are stored in this folder: \(folder)/Preferences")

এক্সকোড ডিবাগ কনসোলে NSUserDefaults এর plist ফাইল ফোল্ডারের অবস্থান মুদ্রণ করবে। পাথের স্ট্রিংটি অনুলিপি করুন। আপনার ফাইন্ডারটি খুলুন, গো মেনু আইটেমের ফোল্ডারে যান নির্বাচন করুন, পাথ স্ট্রিংটি আটকান। প্লিস্ট ফাইলটিতে ডাবল ক্লিক করুন। আপনি আপনার এক্সকোড সম্পাদকটিতে সামগ্রীগুলি দেখতে পাবেন।

কেবল সিমুলেটারে কাজ করুন

ধন্যবাদ @ নিলস ক্যাসল


এই একমাত্র সমাধান যা এক্সকোড 9.4 এর জন্য সিমুলেটারে ব্যবহারকারীদের ডেফাল্টগুলি খুঁজে পাওয়ার জন্য কাজ করেছিল
anoo_radha

1

আমি আমার ডেস্কটপে সিমুলেটারের ফোল্ডারে শর্টকাট রাখি যেখানে এটি অ্যাপস রাখে, অর্থাত:

/Users/gary/Library/Application Support/iPhone Simulator/User/Applications

সর্বাধিক সাম্প্রতিক তারিখ অনুসারে বাছাই করা হয়েছে, তারপরে কেবল সাম্প্রতিকতম অ্যাপ্লিকেশন ফোল্ডারের লাইব্রেরি / পছন্দসমূহে যান এবং প্লাস্ট সম্পাদকের মধ্যে ফাইলটি দেখুন।



1

MacOS অ্যাপ্লিকেশনগুলির
জন্য: / ব্যবহারকারী / ইউজার / লাইব্রেরি / কনটেইনারস / কম.আপনার সংস্থা to। App আপনার অ্যাপ্লিকেশন} / ডেটা / লাইব্রেরি / পছন্দসমূহে যান এবং এক্সকোড দিয়ে আপনার অ্যাপ্লিকেশনটির তালিকাটি খুলুন।


1

সুইফ্ট 5 এক্সকোড 11.2 সমাধান

এটিই পুরো পথ যেখানে আপনার ব্যবহারকারীর ডেফল্ট কী মানগুলি প্লিস্ট ফাইলে থাকবে। আপনার অ্যাপ্লিকেশন বান্ডেল সনাক্তকারী .plist ফাইল অনুসরণ করুন এবং সন্ধান করুন।

/ ব্যবহারকারী / 'আপনার ব্যবহারকারীর নাম' / গ্রন্থাগার / বিকাশকারী / কোরসিমুলেটর / ডিভাইস / 4176EED3-B9FC-4C77-A25E-ASD201B9FDFG2 / ডেটা / ধারক / তথ্য / অ্যাপ্লিকেশন / 56D7CE31-9A8B-4371-9B0F-9604E239423B0 / লাইব্রেরি / পছন্দসমূহ

এখানে "4176EED3-B9FC-4C77-A25E-ASD201B9FDFG2" আপনার ডিভাইস আইডি

এবং "56D7CE31-9A8B-4371-9B0F-9604E239423B0" আপনার অ্যাপ্লিকেশন আইডি

আমি সাধারণত ফাইন্ডারে পরিবর্তিত শেষ তারিখ অনুসারে ফোল্ডারগুলি বাছাই করে এগুলি পাই। এবং সর্বাধিক সাম্প্রতিক সম্পাদিত ফোল্ডারটি হ'ল আমার ডিভাইস আইডি এবং অ্যাপ্লিকেশন আইডি।

উপভোগ করুন!


0

আপনার সেট করা প্রতিটি মান আপনি এনএসলোগ করতে পারেন, যেমন:

NSLog(@"%@",[[NSUserDefaults standardDefaults] stringForKey:@"WhateverTheKeyYouSet"]);

0

এই প্রশ্নের গৃহীত উত্তরটি পড়ার পরে, আমি এই সাধারণ স্ক্রিপ্টটি একসাথে রেখেছি যা আইওএস সিমুলেটর দ্বারা ব্যবহৃত প্লাস্ট ফাইলগুলি NSUserDefaultsপছন্দগুলি সংরক্ষণ করার জন্য খোলে এবং এটি একটি নির্দিষ্ট সেটআপ গ্রহণ করার সময় (আমার পুরোপুরি ফিট করে) এটি অন্যদের জন্য একটি সূচনা পয়েন্ট হিসাবে কাজ করতে পারে ।

$ cat open-prefs-plist.sh
#!/bin/sh

# The project name based on the workspace path, e.g. "MyProject" from "./MyProject.xcworkspace"
WORKSPACE_NAME=$(echo `find . -name *.xcworkspace -type d -exec basename {} \;` | cut -d'.' -f1)
SIMULATOR_PATH="$HOME/Library/Application Support/iPhone Simulator"
# The App's bundle ID taken from its info plist, e.g "com.myproject" from "./MyProject/MyProject-Info.plist"
BUNDLE_ID=`/usr/libexec/PlistBuddy -c Print:CFBundleIdentifier $WORKSPACE_NAME/$WORKSPACE_NAME"-Info.plist"`
# Open all plist files in the simulator path that match the app's bundle ID 
# normally one per iOS version
find "$SIMULATOR_PATH" -name $BUNDLE_ID".plist" -type f -print0 \
    | while IFS= read -r -d '' PLIST; do
    echo $PLIST
    open "$PLIST"
done

স্থাপনার উদাহরণ:

$ ls -1
MyProject
MyProject Tests
MyProject.xcodeproj
MyProject.xcworkspace
Podfile
open-prefs-plist.sh

আমি এই স্ক্রিপ্টটি কীভাবে কাঁটাচামচ দিয়ে বা হাতে খাব? আমি কোথায় রেখেছি, মানে?
জোশ

1
@ জোশ আপনাকে এটিকে আপনার প্রকল্পের ফাইলের পাশাপাশি রাখতে হবে (আমার উদাহরণে স্ক্রিপ্টটির নাম দেওয়া হয়েছে ওপেন-প্রেফস-plist.sh)। যদিও আমি এটি সর্বশেষতম এক্সকোড দিয়ে পরীক্ষা করিনি। আমি আপনাকে এই তথ্যটি এখনই পরিদর্শন করার জন্য ফ্লেক্সের পরামর্শ দিচ্ছি। github.com/Flipboard/FLEX
আর্নেস্তো এমবি

0

ব্যবহারকারীর পছন্দসই, ক্যাশে এবং অন্যান্য অনেক ডেটাতে পুরো পথ পেতে আপনি এটি ব্যবহার করতে পারেন

print(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true))


0

আপনি application:didFinishLaunchingWithOptions:আপনার অ্যাপডেলিজেটে কলব্যাক থেকে পছন্দসই ডিরেক্টরিটির পথটি মুদ্রণ করতে পারেন :

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    print(FileManager.default.urls(for: .preferencePanesDirectory, in: .userDomainMask).first!)
    return true
}

তারপরে আপনি সেখানে কী সংরক্ষণ করেছেন তা দেখতে সরাসরি প্লাস্ট ফাইলটি দেখতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.