小编Sen*_*ULL的帖子

在swift中使用Objective-C块

我的swift项目中有一个第三方Objective-C库,在.h文件中,它有一个typedef:

typedef void (^YDBlutoothToolContectedList) (NSArray *);

在课堂内,它有一个属性:

@property (nonatomic, copy) YDBlutoothToolContectedList blutoothToolContectedList;

(请忽略其拼写)

当我尝试在我的swift类中使用这个属性时,我会使用

bt.blutoothToolContectedList = {(_ tempArray: [Any]) -> Void in
    self.devices = tempArray
    self.tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)

我得到错误说:

Cannot assign value of type '([Any]) -> Void' to type 'YDBlutoothToolContectedList!'

我知道swift中的上述Objective-C代码将是:

typealias YDBlutoothToolContectedList = () -> Void

但我无法重写那个Objective-C文件和swift无法转换关闭类型,有没有可能的方法来解决这个问题?

closures objective-c ios objective-c-blocks swift

7
推荐指数
1
解决办法
3536
查看次数

如何在C中区分int数组中的empty和0?

我是C的初学者,现在我正在学习指针和动态内存分配.我想编写一个简单的程序来创建空数组并检查给定数字是否存在.这是我的代码:

/* create an empty array pointer */
int* createArray(){
    int *a = (int*) malloc(sizeof(int));
    return a;
}

void findArrayElement(int *list, int element){

    int i;
    int len = (sizeof(list) / sizeof(int));
    if (sizeof(list) == 0) {
        printf("NO\n");
        return;
    }
    for (i=0; i<len; i++) {
        if (list[i] == element) {
            printf("YES\n");
            return;
        }
    }

    printf("NO\n");
}

int main(int argc, const char * argv[]) {

    int *p;
    p = createArray();

    printf("size of int is: %lu\n", sizeof(int));
    printf("size of p is: %lu\n", sizeof(p)); …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

2
推荐指数
1
解决办法
1855
查看次数

标签 统计

arrays ×1

c ×1

closures ×1

ios ×1

objective-c ×1

objective-c-blocks ×1

pointers ×1

swift ×1