我有一個從plist文件獲取數據的類。從NSMutableArray獲取對象的實例變量
@interface myClass : NSObject
{
NSString *string;
}
@property (copy) NSString *string;
-(id)getData:(NSString *) a :(NSInteger) i;
@end
這是實施。
@implementation myClass
-(id)getData:(NSString *) a :(NSInteger) i
{
myClass *class = [[myClass alloc]init];
NSString *path = [[NSBundle mainBundle] pathToResource:a ofType:@"plist"];
NSArray *myArray = [[NSArray alloc] initWithContentsOfFile:path];
class.string = [myArray objectAtIndex:i];
return class;
}
我的方法getData
有一個字符串和一個整數參數。此方法被放置在for循環中,因此i
參數將成爲for-loop索引。下面是它意味着在裏面的方法。
-(id)init
{
self = [super init];
if (self)
{
//this is a NSMutableArray that i created in the .h file this method is in
list = [[NSMutableArray alloc]init];
for(int i = 0; i < 5; i++)
{
[list addObject:[[[myClass alloc]init] getData: @"file" :i]];
}
//this is a NSTextField that i create in the .h file that this init method is in
[instructions setStringValue:[list objectAtIndex:0].string];
}
return self;
}
我想要做的是一套我存儲在列表中的NSMutableArray說明的NSTextField到myClass.string
值的字符串值。有沒有辦法做到這一點?
每次我試圖做[instructions setStringValue:[list objectAtIndex:0].string].
當存儲對象的列表,它不能超過這個對象的實例變量攜帶或有另一種方式來訪問它們?
嘗試不同的語法'[[list objectAtIndex:0] string]' –
您的代碼非常混亂。你爲每一個你插入的'myClass'創建兩個實例。而且我不清楚你的'string'屬性是否會被正確保留。 –
你的代碼效率不高,你一遍又一遍地加載同一個文件。只需加載一次! – Merlevede