Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 执行(int)强制转换所需的生成设置-->;(UILabel*)?_Objective C_Xcode - Fatal编程技术网

Objective c 执行(int)强制转换所需的生成设置-->;(UILabel*)?

Objective c 执行(int)强制转换所需的生成设置-->;(UILabel*)?,objective-c,xcode,Objective C,Xcode,以下加载到XCode 4.2中的“旧”代码将起作用 但如果我启动一个“新项目”并“剪切并粘贴”代码,我会得到一个错误:ARC不允许将“int”转换为“UILabel*” 我假设在“构建设置”中有一个需要设置的设置。。。我该怎么办 谢谢 (是的,我有意这么做,太多的旧代码无法转换!) int小鼠[10]; 对于(int z=0;z你避免这样的施法,因为它有一个未定义的行为。改为创建一个UILabels数组。你避免这样的施法,因为它有一个未定义的行为。改为创建一个UILabels数组。哇。无意冒犯,

以下加载到XCode 4.2中的“旧”代码将起作用

但如果我启动一个“新项目”并“剪切并粘贴”代码,我会得到一个错误:ARC不允许将“int”转换为“UILabel*”

我假设在“构建设置”中有一个需要设置的设置。。。我该怎么办

谢谢

(是的,我有意这么做,太多的旧代码无法转换!)

int小鼠[10];

对于(int z=0;z你避免这样的施法,因为它有一个未定义的行为。改为创建一个
UILabel
s数组。

你避免这样的施法,因为它有一个未定义的行为。改为创建一个
UILabel
s数组。

哇。无意冒犯,但为什么不创建一个nsmutablearray呢?至少从ba开始,对UILabel的施法是有效的se对象是id


不确定您是否能够在arc打开的情况下执行此操作。如果您想继续使用此类代码,建议您禁用它。

哇。无意冒犯,但为什么不使用nsmutablearray?至少在基础对象为id的情况下,转换为uilabel可以工作


不确定是否能够在arc打开的情况下执行此操作。如果要继续使用此类代码,建议禁用它。

如何动态执行此操作:UILabel*鼠标[10][20];?通常我使用malloc。是-或使用NSArray/nsmutableArray我想动态执行此操作!UILabel*鼠标[10][20];是硬设置的,不是动态的。
int-mice[10]也是如此;
,但正如我所说的,您可以使用
NSMutableArray
这是动态的,尽管这是一般性的。对于对象,我想要类似but的东西:int m=(int)malloc(sizeof(int*)*行);循环并设置列。所有这些都是动态的,因为代码中的内容会发生变化。如何动态地执行此操作:UILabel*鼠标[10][20];?通常我使用malloc。是-或使用NSArray/nsmutableArray我希望动态地执行此操作!UILabel*鼠标[10][20];是硬设置的,而不是动态的。
int鼠标[10]也是如此;
,但正如我所说的,您可以使用动态的
NSMutableArray
,尽管这是一种通用的方法。我希望对象使用类似于but的方法:int m=(int)malloc(sizeof(int*)*行);循环和设置列。所有这些都是动态的,因为代码中的内容会发生变化。在创建新项目期间,您可以选择是否使用ARC。不要。如果您已经使用了,并且无法重新开始,则编译器开关为
-fobjc ARC
。我目前无法检查构建集正在初始化名称,但在Xcode GUI中搜索上述内容时应该会显示它。ARC是64位的。如果我禁用它..我想对malloc和casting执行什么操作,它会在64位下工作吗?在Mac上,ARC需要64位,但64位不是必需的。它是可选的。您现有的代码库与它不兼容。它需要substantial更改为使用ARC。您不应该使用ARC,至少不应该立即使用。如果您愿意,您可以在以后的日期一次转换一个翻译单元。此外,
int
和指针之间的强制转换不兼容64位也是事实。
int
比64位指针小。您可以从
如果必须这样做。在创建新项目的过程中,您可以选择是否使用ARC。不要这样做。如果您已经使用过并且无法重新开始,编译器开关是
-fobjc ARC
。我目前无法检查构建设置名称,但可以搜索Xcode G上面的UI应该会显示它。ARC是64位的。如果我禁用它。我想用malloc和casting做什么,它不会用64位吗?在Mac上,ARC需要64位,但它不是64位所必需的。它是可选的。你有一个与它不兼容的现有代码库。它需要对ARC进行重大更改。你应该uld不能使用ARC,至少不能立即使用。如果您愿意,您可以在以后的某个日期一次转换一个翻译单元。另外,
int
和指针之间的转换不兼容64位也是事实。
int
比64位指针小。如果必须这样做,您可以从
使用
intptr\t
一件事。
int mice[10];

for (int z=0; z<10; z++) {
    UILabel *b = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
    mice[z] = (int)b;
}

for (int zz=0; zz<10; zz++) {
    //Old project loaded into XCode 4.2 will work fine with this
    UILabel *c = (UILabel*) mice[zz];// New project: fails <---------- Cast of 'int' to 'UILabel*' is disallowed with ARC


    [self.view addSubview:c]; 
}