zoukankan      html  css  js  c++  java
  • hello,world不使用ARC

    main.m

    //
    //  main.m
    //  Hello
    //
    //  Created by lishujun on 14-8-28.
    //  Copyright (c) 2014年 lishujun. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    // 视图控制器对象
    @interface HelloWorldViewController : UIViewController
    @end
    
    @implementation HelloWorldViewController
    
    -(void) loadView
    {
        /*
         self.view = contentView; 
         [self setView contentView];
         等价,设置属性其实是调用set方法
         */
        
        //创建视图对象
        UIView *contentView = [[UIView alloc]initWithFrame:[[UIScreen mainScreen] applicationFrame]];
        NSLog(@"new contentView : %d", [contentView retainCount]);  // new contentView : 1
        contentView.backgroundColor = [UIColor lightGrayColor];
        NSLog(@"set contentView : %d", [contentView retainCount]);  // set contentView : 1
        [self setView: contentView];
         NSLog(@"add contentView : %d", [contentView retainCount]); // add contentView : 2
        
        //创建label对象
        UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 30.0)];
        NSLog(@"new label : %d", [label retainCount]);              // new label : 1
        label.text = @"Hello World";
        label.center = contentView.center;
        label.textAlignment = UITextAlignmentCenter;
        label.backgroundColor = [UIColor clearColor];
        label.textColor = [UIColor redColor];
        NSLog(@"set label : %d", [label retainCount]);              // set label : 1
        
        //在视图上添加label
        [contentView addSubview:label];
        NSLog(@"add label : %d", [label retainCount]);              // add label : 2
        [label release];
         NSLog(@"release label : %d", [label retainCount]);         // release label : 1
        
    }
    
    @end
    
    
    // 委托对象
    @interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate>
    {
        IBOutlet UIWindow *window;
    }
    
    @property (nonatomic, retain) UIWindow *window;
    @property (nonatomic, retain) HelloWorldViewController *viewController;
    //window 必须声明为属性,声明为局部变量则无法绘制视图,显示为黑屏
    //apple 官方文档把viewController也声明为属性了
    @end
    
    @implementation HelloWorldAppDelegate
    
    @synthesize window;
    @synthesize viewController;
    
    -(void) applicationDidFinishLaunching:(UIApplication *)application
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen]bounds]];
        self.viewController = [[HelloWorldViewController alloc]init];
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];
    }
    
    @end
    
    // 程序入口
    int main(int argc, char * argv[])
    {
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, @"HelloWorldAppDelegate");
        }
    }

    输出:

    2014-08-30 11:47:30.980 HelloNOARC[562:60b] new contentView : 1
    2014-08-30 11:47:30.983 HelloNOARC[562:60b] set contentView : 1
    2014-08-30 11:47:30.984 HelloNOARC[562:60b] add contentView : 2
    2014-08-30 11:47:30.985 HelloNOARC[562:60b] new label : 1
    2014-08-30 11:47:30.986 HelloNOARC[562:60b] set label : 1
    2014-08-30 11:47:30.986 HelloNOARC[562:60b] add label : 2
    2014-08-30 11:47:30.987 HelloNOARC[562:60b] release label : 1
  • 相关阅读:
    LeetCode:Multiply Strings
    c/c++ 输入输出缓冲区
    Scala access modifiers and qualifiers in detail
    PUT vs POST in REST
    Redis优化总结
    硬中断和软中断(转)
    Redis监控技巧(转)
    Understanding mysql max_connect_errors
    TCP : two different sockets sharing a port?
    libevent 安装异常
  • 原文地址:https://www.cnblogs.com/code-style/p/3946258.html
Copyright © 2011-2022 走看看