zoukankan      html  css  js  c++  java
  • ObjectiveC初步研究 接口文件(interface file)

    1. Exploring the Objective-C File Structure

        建立一个Objective-C的类会新建两个文件, 一个接口文件(头文件)(interface file), 后缀为.h,

        一个实现文件(implementation file), 后缀为.m

        (见下图)

       顾名思义, 接口文件定义所有方法签名, 实现文件具体实现代码逻辑

       看下面这段代码

    #import语句用来导入某个头文件, 学过Java的朋友可以知道, 它类似Java中的import语句, 而Java中是导入某个包

    Directive(指示语句)

    Directives are commands that are added to your files that help Xcode and its
    associated tools build your application.
     

    (Directives你可以把它看成一种命令, 类似.NET中的@指示, 它让Xcode编译器知道你的代码如何组织)

    @interface myClass : myParent <myProtocol> {
      NSString *myString;
      IBOutlet UILabel *myLabel;
    }

    Protocol(协议)

    Sometimes you will come across features that require you to write methods
    to support their use—such as providing a list of items to be displayed in a
    table. The methods that you need to write are grouped together under a common
    name—this is known as a “protocol.”

    (你可以把它想像成C#或者Java中的接口, 协议中定义了哪些方法, 你就需要去实现这些方法)

     

    + (NSString)myClassMethod:(NSString)aString;
    - (NSDate)myInstanceMethod:(NSString)aString anotherParameter:(NSURL)aURL;

    The + denotes a class method(+号表示该方法是一个类方法)

    - indicates an instance method(-号表示该方法是一个实例方法)

    @property指示

    @property (nonatomic, retain) UILabel *myLabel;

    如果程序要访问实例变量(instance variable), 如果你没有加入该指示, 必须使用get, set方法

    你可以把该指示想像成.NET中的属性

    public string PropertyName { getset; }

    原来使用get, set访问的代码

    [myLabel setText:@”Hello World”];

    theCurrentLabel=[myLabel getText];

     加了属性指示后, 我们可以像下面这样简单的访问

    myLabel.text=@”Hello World”;
    theCurrentLabel=myLabel.text;

     这样就方便了很多

    最后, 接口结束必须以结束指示符

    @end

    技术改变世界
  • 相关阅读:
    spring下配置shiro
    web.xml文件配置说明
    spring中配置缓存—ehcache
    applicationContext.xml配置简介
    spring task定时器的配置使用
    spring配置数据库连接池druid
    Mybatis使用pageHelper步骤
    mybatis-generator和TKmybatis的结合使用
    PHP删除一个目录下的所有文件,不删除文件夹
    nodejs学习
  • 原文地址:https://www.cnblogs.com/davidgu/p/2507231.html
Copyright © 2011-2022 走看看