私は現在、データを供給するためのバックエンド sqlite データベースを備えた作業中の TableView アプリケーションを持っています。最初のビューは、「州」という静的な見出しを持つすべての州を返します。アルファベット順のセクションで州を返すように変更したいと思います (たとえば、アラバマ、アラスカ、アリゾナ、アーカンソーは「A」というセクションに分類されます。カリフォルニア、コロラド、コネチカットは「C」というセクションに分類されます)。 .
私の appdelegate は、クエリを呼び出して「状態から ID、状態を選択」します。以下のセクションを作成するための作業コードであると思われるものがあります(状態だけをオブジェクトとしてNSMutableArrayを作成することでこれをテストし、正常に機能しました)。
stateIndex = [[NSMutableArray alloc] init];
for (int i=0; i<[listOfStates count]-1; i++){
//---get the first char of each state---
char alphabet = [[listOfStates objectAtIndex:i] characterAtIndex:0];
NSString *uniChar = [NSString stringWithFormat:@"%C", alphabet];
//---add each letter to the index array---
if (![stateIndex containsObject:uniChar])
{
[stateIndex addObject:uniChar];
}
}
警告/エラーなしでシミュレーターを実行しましたが、クラッシュします。しばらくすると、クラッシュする理由がわかりました。検索中にアルファベット文字を検索しようとしていますが、元のクエリが ID と州名の両方を呼び出しているため、ID を調べて失敗しています。ID は、選択した州に基づいて都市をロードする別のテーブルにリンクされているため、検索に必要です。id は主キーです。
それで、私の質問は...アルファベット順のセクションを作成するために、この検索中にidフィールドを削除またはスキップする方法はありますか?
前もって感謝します!
更新された SchoolHouse.h ========
#import <UIKit/UIKit.h>
#import <sqlite3.h>
@interface SchoolHouse : NSObject {
}
@property (assign, nonatomic, readonly) NSInteger schoolHouseID;
@property (copy, nonatomic) NSString *schoolHouseName;
-(id) initWithSchoolHouseData:(NSInteger)pk schoolHouseName:(NSString *)name;
@end