Object-C 类定义

该文章用于展现 Object-C中的类的基本结构,以便参考。

1、头文件定义:AlsTemplate.h

//
//  AlsTemplate.h
//  EasyObjectC
//
//  Created by Allison on 13-9-20.
//  Copyright (c) 2013年 RuiHuang. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface AlsTemplate : NSObject {
    NSString *strMember;
}

@property (nonatomic, retain) NSString *strMember;

- (id) init;

- (id) initWithValue: (NSString *)initValue;

- (void) someMethod: (NSString *) firstParam secondParam: (int) secondParam;

+ (id) fooWithValue: (NSString *) initValue;

@end

2、事项文件定义:AlsTemplate.m

//
//  AlsTemplate.m
//  EasyObjectC
//
//  Created by Allison on 13-9-20.
//  Copyright (c) 2013年 RuiHuang. All rights reserved.
//

#import "AlsTemplate.h"

@implementation AlsTemplate

@synthesize strMember;

// 结构体
typedef struct {
    float x;
    float y;
} PointStruct;

// 枚举
enum MyEnumType {
    VALUE1,
    VALUE2,
    VALUE3
};
typedef enum MyEnumType MyEnum;

#pragma mark - system method
- (void) close {
    // add release code
    [strMember release];
    strMember = nil;
}

- (void) dealloc {
    [self close];
    [super dealloc];
}

//- (void) finalize {
//    [self close];
//    [super finalize];
//}

- (id) init {
    if (self = [super init]) {
        // add init code
        strMember = [[NSString alloc] init];
    }
    
    return self;
}

- (id) initWithValue:(NSString *)initValue {
    if (self = [self init]) {
        // add your init code
        strMember = [initValue retain];
        NSLog(@"strMember=%@", strMember);
    }
    
    return self;
}

// 静态方法
+ (id) fooWithValue:(NSString *)initValue {
    return [[[self alloc]initWithValue:initValue] autorelease];
}

#pragma mark - my method
- (void) someMethod:(NSString *)firstParam secondParam:(int)secondParam {
    NSLog(@"someMethod, strMember=%@, firstParap=%@, secondParam=%d", strMember, firstParam, secondParam);
    
    PointStruct p;
    p.x = 10;
    p.y = 20;
    NSLog(@"The struct test x=%f, y=%f", p.x, p.y);
    
    // 枚举初始化
    MyEnum myEnum = VALUE3;
    NSLog(@"The enum test, value3=%d", myEnum);
}

@end

3、使用方法:main.m 

//
//  main.m
//  EasyObjectC
//
//  Created by Allison on 13-9-18.
//  Copyright (c) 2013年 RuiHuang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "AlsTemplate.h"
#import "TestClass.h"

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        // Test my code
        AlsTemplate *myTemplate = [[AlsTemplate alloc] init];
        [myTemplate someMethod:@"FirstValue" secondParam:100];
        [myTemplate release];
        
        [AlsTemplate fooWithValue:@"method of class test."];
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你需要在Qt程序中编写和执行Objective-C代码,可以使用Qt的QObjc调用机制,它允许Qt程序与Objective-C程序进行交互。 具体步骤如下: 1. 定义Objective-C和方法 在Objective-C代码中定义一个和一个方法,用于执行需要的功能。例如,下面的代码定义了一个名为"Utils"的Objective-C,其中包含一个名为"hello"的方法,用于打印一条消息。 ```objective-c // Utils.h #import <Foundation/Foundation.h> @interface Utils : NSObject - (void)hello; @end // Utils.m #import "Utils.h" @implementation Utils - (void)hello { NSLog(@"Hello, World!"); } @end ``` 2. 在Qt项目中添加Objective-C文件 将上述Objective-C代码保存为两个文件"Utils.h"和"Utils.m",并将它们添加到Qt项目中。在Qt项目中,需要将".m"文件添加到Objective-C编译器中,以便它可以编译Objective-C代码。 3. 创建QObjc对象 在Qt程序中创建一个QObjc对象,并使用它来调用Objective-C方法。例如,下面的代码创建一个名为"utils"的QObjc对象,并使用它来调用"Utils"中的"hello"方法。 ```cpp QObjc utils("Utils"); utils.callMethod("hello"); ``` 在上述代码中,"Utils"是Objective-C的名称,"hello"是要调用的方法的名称。 请注意,为了编译Objective-C文件,需要在Qt项目的.pro文件中添加以下行: ```qmake QMAKE_OBJC_SOURCES += Utils.m ``` 这样,Qt编译器就会将Utils.m文件编译为Objective-C代码,并将其链接到Qt程序中。同时,也需要在.pro文件中添加以下行来导入Objective-C框架: ```qmake QMAKE_LFLAGS += -framework Foundation ``` 这样,Qt程序就可以调用Objective-C框架中的方法了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值