コードのパート 1 は正常に動作します。パート 2 では、コードが期待どおりに (エラーや警告なしで) 動作しなくなる原因となる、コードの小さな変更を示します。
パート 1: (作品)
#import "ClassA.h"
#import "ClassB.h"
@implementation ClassA
- (void) sendData
{
NSString *temp = [NSString stringWithFormat:@"HI!"];
ClassB *classBObject = [[ClassB alloc] init];
classBObject.dataToDisplay = temp;
self.view = classBObject.view;
}
@end
ClassB のインターフェース:
#import <UIKit/UIKit.h>
@interface ClassB : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *textLabel;
@property NSString * dataToDisplay;
@end
ClassB の実装:
#import "ClassB.h"
@implementation ClassB
@synthesize dataToDisplay, textLabel;
- (void)viewDidLoad
{
[super viewDidLoad];
textLabel.text = dataToDisplay;
}
@end
パート2:
しかし- (void)sendData
、ClassAを次のように変更すると:
- (void) sendData
{
NSString *temp = [NSString stringWithFormat:@"HI!"];
ClassB *classBObject = [[ClassB alloc] init];
classBObject.textLabel.text = temp; // statement changed from Part 1.
self.view = classBObject.view;
}
から削除textLabel.text = dataToDisplay;
するimplementation
とClassB
、のtextLabel
ビューコントローラーはClassB
更新されません。なぜそうなのか教えてください。
ありがとう!
編集1:
ステートメントで: 、コピー貼り付け中classBObject.textLabel.text = temp; // statement changed from Part 1.
に見逃していました。.text
失礼いたします。