実行時にデータを保存したいのですが、リンクされたリストを作成して実行時に追加できますが、IOS と Objective C は初めてなので、データを追加できるデフォルトのリストはありますか? (データは 2 つの文字列です)および整数)。
4 に答える
Cocoa は、Javaと C#に似た順序付けられたコンテナーのペアであるNSArray
とを提供します。に値を追加できます。要素を追加すると、値が大きくなります。読み取り専用です。NSMutableArray
ArrayList
List
NSMutableArray
NSArray
.plist ファイルを使用してデータを保存できます。詳しくは、「.plistファイルからのデータの読み込み」、「iPhone で plist を使用する方法」を参照してください。または、「.plist からデータを読み込む」のようにググってください。ただしNSArray
、実行時に作成したり、このようなものを作成したりできます。さらに深く掘り下げたい場合は、ObjC Collections Programming Topicsを読む必要があります
必要に応じて、 NSArrayまたはNSMutableArrayまたはNSDictionaryまたはNSMutableDictionaryを使用できます。
NSArray:
NSArray *myArray;
NSDate *aDate = [NSDate distantFuture];
NSValue *aValue = [NSNumber numberWithInt:5];
NSString *aString = @"a string";
myArray = [NSArray arrayWithObjects:aDate, aValue, aString, nil];
NSMutableArray:
NSMutableArray *myArray = [[NSMutableArray alloc] init];
NSDate *aDate = [NSDate distantFuture];
NSValue *aValue = [NSNumber numberWithInt:5];
NSString *aString = @"a string";
[myArray addObject:aDate];
[myArray addObject:aValue];
[myArray addObject:aString];
NSDictionary:
NSDictionary * myDict = [NSDictionary dictionaryWithObjects:aDate, aValue, aString forKeys:firstDate, firstValue, firstString];
NSMutableDictionary:
NSString *aString = @"a string";
NSDate *aDate = [NSDate distantFuture];
NSValue *aValue = [NSNumber numberWithInt:5];
myDict = [[NSMutableDictionary alloc] init];
[myDict setObject:aString forKey:firstString];
[myDict setObject:aDate forKey:firstDate];
[myDict setObject:aValue forKey:firstValue];
デフォルトのプロパティでデータのクラスを作成し、それが NSObject を継承していることを確認してから、NSMUtableArray を使用して要素をリストに追加/削除します。
// in the .h file of your object
@interface MyObject : NSObject {
NSString* strAttribute1;
// add more attributes as you want
}
@property (nonatomic, retain) NSString* strAttribute1;
@end
// then in the .m file
// do not forget the #import ""
@implement MyObject
@synthesize strAttribute1;
// override the dealloc to release the retained objects
@end
次に、このオブジェクトのリストを作成するコードで
NSMutableArray* myArray = [[NSMutableArray alloc] init];
// add elements and iterate through them
// do not forgot to free the memory if you are not using ARC
[myArray release];