0

以前に書いた、クラスから作成されたオブジェクトの配列を構築しました。配列をループしながら、いくつかのクラス変数にアクセスしたかっただけです。

- (void)viewDidLoad
{
       [super viewDidLoad];

       NSMutableArray *medicalCenters = [(AppDelegate *)[[UIApplication sharedApplication] delegate] medicalCenters];

       for (MedicalCenter *row in medicalCenters){
           NSString *latitude = row.MCLatitude;
           NSLog(@"%@", latitude);
       }
}

作成したクラス ファイルは次のようになります。

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface MedicalCenter : NSObject
{
    CLLocationCoordinate2D _coordinate;
}

@property (nonatomic, strong) NSString *medicalCenter;
@property (nonatomic, assign) NSString *MCLatitude;
@property (nonatomic, assign) NSString *MCLongitude;
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

- (id)initWithName:(NSString *)medicalCenter coordinate:(CLLocationCoordinate2D)coordinate;

@end

を構築するたびにNSString *latitude = row.MCLatitude、「Bad_excess Code:1」というメッセージが表示されました。

しかし、配列 medicalCenters 内のオブジェクトを一覧表示するだけで、それらすべてを見ることができます.............. 重要なことを見逃していませんか?

ありがとうセバスチャン

4

1 に答える 1

1

これはメモリ管理が悪いためでMCLatitudeあり、MCLongitudeプロパティが (割り当て) で設定されているため、適切に保持されていません。割り当てとして設定した理由がわからないため、理由がわかりません。強く、セッターを使用して値を割り当てれば、問題ないはずです。

@property (nonatomic, strong) NSString *MCLatitude;
@property (nonatomic, strong) NSString *MCLongitude;
于 2012-06-16T17:15:44.727 に答える