-1

私の質問はこれと非常によく似ていますが、私はnil自分から戻っていません。たとえば、インデックス 3のオブジェクトから値を取得するにはどうすればよいでしょうか。次のようなものです。NSMutableArrayNSMutableArraynameTimeline

NSLog(@"tlresults: %@",(Timeline *)[tlresults objectAtIndex:3].name);

インデックス 3 の Timeline.name 値を返します。

Timeline.h

@interface Timeline : NSObject
{
    NSString *_name;
    NSInteger _up;
    NSInteger _down;
    NSInteger _timeofdatapoint;
}

@property (nonatomic,retain) NSString *name;
@property (nonatomic) NSInteger up;
@property (nonatomic) NSInteger down;
@property (nonatomic) NSInteger timeofdatapoint;

@end

タイムライン.m

#import "Timeline.h"

@implementation Timeline

@synthesize name = _name;
@synthesize up = _up;
@synthesize down = _down;
@synthesize timeofdatapoint = _timeofdatapoint;

@end

オブジェクトを追加して取得をテストする関数:

#import "Timeline.h"
...
NSMutableArray *tlresults = [[NSMutableArray alloc] init];

for (int i=0; i<10; i++) {

    Timeline *tlobj = [Timeline new];
    tlobj.name = username;
    tlobj.up = 2*i;
    tlobj.down = 5*i;
    tlobj.timeofdatapoint = 2300*i;

    [tlresults addObject:tlobj];
    [tlobj release];
}
NSLog(@"tlresults count: %d",[tlresults count]);
NSLog(@"marray tlresults: %@",(Timeline *)[tlresults objectAtIndex:3]);
...

出力:

tlresults count: 10
tlresults: Timeline: 0x7292eb0
4

2 に答える 2

1

クラス インスタンスの宣言されたプロパティにアクセスできるようにキャストを記述する正しい方法は、次のようになります。

NSLog(@"tlresults: %@",((Timeline *)[tlresults objectAtIndex:3]).name);

また

NSLog(@"tlresults: %@",[(Timeline *)[tlresults objectAtIndex:3] name]);

または、多くのプロパティにアクセスする必要がある場合:

Timeline *timelineAtIndex3 = [tlresults objectAtIndex:3];
NSLog(@"tlresults: %@", timelineAtIndex3.name);
于 2012-12-27T00:24:28.213 に答える
0

NSLog() で出力されるオブジェクトに独自の説明を提供するには、説明メソッドをオーバーライドする必要があります。
このメソッドをオーバーライドしていないため、オブジェクトのメモリ アドレスを出力するだけの NSObject のメソッドが使用されます。

例えば:

- (NSString*) description
{
    return [NSString stringWithFormat: @"Name: %@ up: %li down: %li time of data point: %li",_name,_up,_down,_timeofdatapoint);
}

また、慣例により、プロパティ名は次のようにしないでください。

@property (nonatomic) NSInteger timeofdatapoint;

でもこれは:

@property (nonatomic) NSInteger timeOfDataPoint;
于 2012-12-26T22:59:31.507 に答える