我是Objective-C的新手,請耐心等待。創建後NSMutableArray對象爲空
我有一個名爲的UpdateData自定義對象:
@interface UpdateData : NSObject
-(NSString*) getPath;
-(void) setPath:(NSString*) path ;
@end
當我創建解析列表這個項目:
NSMutableArray *serverData = [[NSMutableArray alloc]init];
for (i = 1; i < [chunks count]; i++) {//chunks contains infor for parsing
UpdateData *ud = [[UpdateData alloc] init];
NSString * element = [chunks objectAtIndex:i];
[ud setPath: element];
[serverData addObject:ud];
NSLog(@"Path: %@",[[serverData lastObject] getPath]);
}
NSLog(@"Done parsing! Elements: %lu", [serverData count]);
在這一循環中,的UpdateData(直接從陣列讀取)有價值。我得到以下輸出:
Path: path
.
.
.
Done parsing! Elements: x
其中x大於0且等於解析的對象,path是解析的正確路徑。
同樣方法後來我嘗試去通過陣列讀取對象的值:
for (i = 0; i < [serverData count]; i++) {
UpdateData *ud = [serverData objectAtIndex:i];
NSLog(@"Path: %@",[ud getPath]);
}
有輸出:
Path:
值將丟失。 for循環背靠背,完全如上所示。
任何想法?
更新:
的updateData類:
#import "UpdateData.h"
@implementation UpdateData
NSString* [email protected]"";
-(NSString*) getPath{
return path;
}
-(void) setPath:(NSString*) newpath{
path = newpath;
}
@end
這是否初始化有關係嗎?應該被覆蓋的權利?
Wha t是'getPath'幹什麼?順便說一下:Objecive-C中的Getters不是以'get'開始的。 – dasdom
該錯誤似乎與您的UpdateData類,而不是NSMutableArray有關。請提供您的UpdateData類的代碼 – rist
您的-getPath可能崩潰/拋出異常並退出。這可能是爲什麼你只能在控制檯輸出中看到第一個** Path **的原因。 –