NSArray
文档是你的朋友。
无论如何,要访问对象数组,您可以- (id)objectAtIndex:(NSUInteger)index
使用NSArray
.
Seva Alekseyev所说的是,你的班级必须以不同的方式组织。例如:
//.h
@interface MyCustomObject : NSObject
{
// you dont need to declare variables, the compiler will do it for you
}
@property (nonatomic, copy) NSString* objObservation;
@property (nonatomic, assign) NSInteger objId;
@property (nonatomic, copy) NSString* objDate;
@property (nonatomic, copy) NSString* objDevice;
@property (nonatomic, assign) double objLatitude;
@property (nonatomic, assign) double objLongitude;
@end
//.m
@implementation MyCustomObject
@synthesize objId;
@synthesize objDate;
@synthesize objDevice;
@synthesize objLatitude;
@synthesize objLongitude;
@synthesize objObservation;
- (void)dealloc
{
/* uncomment if you don't use ARC
[objDate release];
[objDevice release];
[objObservation release];
[super dealloc];
*/
}
@end
像这样使用你的课程(你需要#import "MyCustomObject.h"
)
// populate your object
MyCustomObject* myObj = [[MyCustomObject alloc] init];
myObj.objDate = @"yourDate";
myObj.objDevice = @"yourDevice";
myObj.objId = 1;
myObj.objLatitude = 22.0;
myObj.objLongitude = 23.87;
myObj.objObservation = @"yourObservation";
// insert it into your array (here only for test purposes but you could create an instance variable for store it)
NSArray* myArray = [NSArray arrayWithObjects:myObj, nil];
// if you don't use ARC
[myObj release];
// grab the object from the array
MyCustomObject * currentObj = [myArray objectAtIndex:0];
// see its values, for example
NSLog(@"%@", [currentObj objDevice]);
现在我要添加一些注释。
- 当您使用类时,使用大写字母(例如
MyClass
而不是)调用它们myclass
,变量改为以小写字母开头,例如myVariable
- 如果您的数组可以在不同时间填充,则需要一个
NSMutableArray
. ANSArray
一经创建就无法更改。NSMutableArray
相反是动态的,您可以向其中添加或删除对象
- 当你处理对象时,你应该用属性包装你的变量(在这种情况下你不需要变量,因为编译器会为它们提供
@synthesize
指令)。这允许您不破坏对象封装
- 如果你愿意,你可以考虑为你的对象提供一个初始化器
当你写问题时,试着在它周围加上一些背景,并试着解释你做了什么以及你想要实现什么。