objectivec
setValue
理解を深める

【ObjectiveC】 setValueについて

setValueについての理解を深めよう

そのままパラメータにぶっこむことができるsetValue

ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (nonatomic,strong) NSString *testValue;

@end
ViewController.m
@interface ViewController () {
    NSString *_testValue;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

// インスタンス変数 "_testValue" の値を読み込む
    NSString *testValue = [self valueForKey:@"testValue"];
    _testValue = @"テスト";
    NSLog(@"testValue : %@",testValue);
    NSLog(@"_testValue : %@",_testValue);
    NSLog(@"self.testValue : %@\n",self.testValue);
    self.testValue = @"self.テスト";
    NSLog(@"testValue : %@",testValue);
    NSLog(@"_testValue : %@",_testValue);
    NSLog(@"self.testValue : %@\n",self.testValue);
    // インスタンス変数 "_testValue" に値 @"testValue" を書き込む
    // self.testValue にも値 @"testValue" が書き込まれる
    [self setValue:@"testValue" forKey:@"testValue"];
    NSLog(@"testValue : %@",testValue);
    NSLog(@"_testValue : %@",_testValue);
    NSLog(@"self.testValue : %@\n",self.testValue);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

使い道は徐々に紹介していきます

ログ

testValue : (null)
_testValue : テスト
self.testValue : テスト

testValue : (null)
_testValue : self.テスト
self.testValue : self.テスト

testValue : (null)
_testValue : testValue
self.testValue : testValue

制作チーム
http://sunstripe.main.jp