2012-04-28 16 views
0

SqlServerのようなデータベースでは、自動的にインクリメントするフィールドを設定することができます(IDインクリメント)。コアデータでそれを行うことは可能ですか?コアデータ内で自動的にインクリメントするフィールドを設定する

+0

など、二重に変換、NSDateにソートする

NSDate *creationDate = [NSDate date]; 

非常にシンプルを追加しますか?セーブ?インサート?? – lnafziger

答えて

1

コアデータでは内製自動増分とは思えません。 それにはカスタムソリューションを使用する必要があります。

あなたが実際にやろうとしていることを教えてもらえますか?

私は同じ問題があり、私はNSUserDefaultを使って私のカウンターを保管しています。

+0

私はコードのフィールドを持っていて、自動的にその値を設定したいとします。 – SajjadZare

+0

このカウンタ値をコアデータに追加します。 –

+0

したがって、1つのint変数を取ってコアデータに追加し、counte ++にしておきます。 –

0

挿入時に自動インクリメントするフィールドが必要な場合は、コアデータafaikでは不可能です。あなたはカスタムソリューションを考え出す必要があります。どの解決策があなたが解決しようとする問題に依存するか。

コアデータは、コアデータに保存されているオブジェクトごとに固有のオブジェクトID(またはURI)を保持します。オブジェクトIDとURIの詳細はhereです。

1

はい、これは可能ですが、おそらくそれについて考えているわけではありません。 :) - 「キー」フィールドではなく、意味します。あなたは「カウンター」NSManagedObjectを作成することができます

、それはアプリの起動時に初期化され、そうするように頼まれたときに「現在数」と「次の番号」プロパティを追跡した後があります。

現在の番号を取得し、これをユニークで増分された '番号'にする必要があるオブジェクトのプロパティ値として割り当てることができます。

そこのサンプルコード、私がapple.com上のリンクを見つけることができません「i級」ですが、以前のインストール上のディレクトリ/開発/例/ CoreDataがあったときのXcodeを使用してインストールされましたXcode - これを持っていないかもしれませんが、もしそうであれば、それが有用であると考えて見てください。

1

私たちのカウンターを増やす方法をテストするために、テストプロジェクトにdodeを置くだけです。

からこのコードから、あなたがしたいと思うことが得られ、このコードを必要に応じて変更します。

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    int count; 
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
    count = [prefs integerForKey:@"integerKey"]; 
    NSLog(@"counter is >>>>%d",count); 
    [prefs setInteger:count forKey:@"integerKey"]; 

    // code for adding record to core data 

    count++; 
    NSUserDefaults *prefs1 = [NSUserDefaults standardUserDefaults]; 
    [prefs1 setInteger:count forKey:@"integerKey"]; 
    NSLog(@"counter is >>>>%d",count); 
} 
3

creationDateフィールドの使用を検討してください。あなたがオブジェクトを作成している場合は、単純にインクリメントするカウンタの原因は何

関連する問題