zoukankan      html  css  js  c++  java
  • 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++;

    }

  • 相关阅读:
    P4165 [SCOI2007]组队
    CF575B
    SG函数胡乱一气
    CF280C Game on Tree
    AGC010F
    CF140E
    多功能的低功耗蓝牙可穿戴设备用于监测血液酒精浓度
    智能手环幕后的英雄
    图像处理实用资源
    15.12DataGridView分页显示
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2458471.html
Copyright © 2011-2022 走看看