UIImageViewを円形にする為のサンプルコードについて


ImageViewを円形にするためのサンプルコードについて分からないところがあります。  
引用先はこのページです。  
<http://ryutamaki.hatenablog.com/entry/2014/01/27/132020>

[code]

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        UIImage *circleImage = [UIImage imageNamed:@"ThaiNichi.png"];
        UIImageView *circleImageView = [[UIImageView alloc] initWithImage:circleImage];
    
        if (circleImage.size.width != circleImage.size.height) {
            CGFloat smallerSideLength = (circleImage.size.width < circleImage.size.height) ? circleImage.size.width : circleImage.size.height;
            circleImageView.frame = CGRectMake((circleImage.size.width - smallerSideLength) * 0.5f,
                                               (circleImage.size.height - smallerSideLength) * 0.5f,
                                               circleImage.size.width, circleImage.size.height);
        } else {
            circleImageView.frame = CGRectMake(0.0f, 0.0f, circleImage.size.width, circleImage.size.height);
        }
    
        circleImageView.layer.cornerRadius = circleImageView.frame.size.width * 0.5f;    
        circleImageView.clipsToBounds = YES;
        [self addSubview:circleImageView];
    
    }
    
[/code]

この中の一番下の行でエラーが出ます。エラーメッセージは  
「No visible @interface for '（このクラス名）' declares the selector 'addSubview:'」  
です。このエラーの解決方法をどなたかご教示いただけないでしょうか。  
以上、何卒よろしくお願いいたします。




> [self addSubview:circleImageView]

↓

[code]

    [self.view addSubview:circleImageView];
    
[/code]

注：行末のセミコロン（;）が抜けてます。

self（UIViewControllerのサブクラス）に、「addSubview:」というメソッドはありません。  
UIView（のサブクラス）にはあります。  
引用元には、UIViewControllerのサブクラスに実装するコードだとは、ひとことも書かれていませんね？

UIViewController（のサブクラス）には、かならずベースになるUIView（のサブクラス）が装備されていることを、忘れないようにしてください。UIViewControllerのプロパティ「view」がそれです。ともかく、あなたがプログラマとしてなんらかのプログラムを公開できるようになりたいと思うのなら、
**クラスリファレンスは、端から端まで目を通すようにしてください**
。その場で覚えきれないとか、理解しきれないとかであっても、いっかい目を通しているのといないのでは、のちのち大きな差になって現れてきます。  
（自分なりに「ネガティブ」ではあっても、質問者にとっては必要な意見（というかアドバイス）に編集させていただきました。）




> [self addSubview:circleImageView]

↓

[code]

    [self.view addSubview:circleImageView];
    
[/code]

注：行末のセミコロン（;）が抜けてます。

self（UIViewControllerのサブクラス）に、「addSubview:」というメソッドはありません。  
UIView（のサブクラス）にはあります。  
引用元には、UIViewControllerのサブクラスに実装するコードだとは、ひとことも書かれていませんね？

UIViewController（のサブクラス）には、かならずベースになるUIView（のサブクラス）が装備されていることを、忘れないようにしてください。UIViewControllerのプロパティ「view」がそれです。ともかく、あなたがプログラマとしてなんらかのプログラムを公開できるようになりたいと思うのなら、
**クラスリファレンスは、端から端まで目を通すようにしてください**
。その場で覚えきれないとか、理解しきれないとかであっても、いっかい目を通しているのといないのでは、のちのち大きな差になって現れてきます。  
（自分なりに「ネガティブ」ではあっても、質問者にとっては必要な意見（というかアドバイス）に編集させていただきました。）

