• iPhone开发:将C数组作为ObjC的属性


    我们想把c的数组作为objc的属性,又不想使用NSArray,该如何解决?

    例如:

    int d[3] = {

    1,2,3

    };

    NSString *st[3] ={

    @"111",

    @"222",

    @"333"

    };

    这样的c数组?

    下面利用c数组与指针相互转化的特性来解决这个问题,指针是可以作为objc的属性的

    基本代码如下:

    #import <Foundation/Foundation.h>

    @interface Objtest : NSObject {

    int *d;

    NSString **st;

    }

    @property int *d;

    @property (nonatomic,assign) NSString **st;

    @end

    #import "Objtest.h"

    @implementation Objtest

    @synthesize d,st;

    -(void)dealloc{

    free(st);

    free(d);

    [super dealloc];

    }

    -(id)init{

    self = [super init];

    if (self) {

    self.st = (NSString **)malloc(sizeof(NSString*)*3);

    st[0] = @"1111";

    st[1] = @"2222";

    st[2] = @"3333";

    self.d = (int *)malloc(sizeof(int)*3);

    d[0] = 1;

    d[1] = 2;

    d[2] = 3;

    }

    return self;

    }

    @end

    使用的时候象下面这样就可以了,可以直接用dot语法来访问

    Objtest *obj = [[Objtest alloc] init];

    for (int i = 0; i<3; i++) {

    NSLog(@"string[%d] == %@",i,*obj.st);

    obj.st++;

    NSLog(@"int[%d] == %d",i,*obj.d);

    obj.d++;

    }

  • 相关阅读:
    django-form表单
    django-登录页面添加验证码
    opensatck误删除service项目
    运维脚本
    大数据平台架构组件选择与运用场景
    HDP2.4安装(五):集群及组件安装
    Spark(三): 安装与配置
    Spark(二): 内存管理
    Spark(一): 基本架构及原理
    ElasticSearch基本使用
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2458471.html
Copyright © 2020-2023  润新知