Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
Ios 在+(无效)问题中设置布尔值_Ios_Objective C_Boolean_Void - Fatal编程技术网

Ios 在+(无效)问题中设置布尔值

Ios 在+(无效)问题中设置布尔值,ios,objective-c,boolean,void,Ios,Objective C,Boolean,Void,我试图调用BOOL in+void方法,但我不能。为什么不在+void方法中设置?而它正在研究全空方法 h m 不能在类方法+中使用header属性,只能在实例方法-中使用 这是其他编程语言中已知的某种静态方法。在objective-c中,您可以使用类方法来执行一些适合您创建的类的操作,但您必须记住,使用类方法不是对象操作。使用类方法不必创建对象,当然也不能访问对象的属性。+方法是类级方法,属性是实例级变量。因此不可能设置它们,在什么情况下设置它们?如果需要保持状态,则不应使用类级方法。如果你真

我试图调用BOOL in+void方法,但我不能。为什么不在+void方法中设置?而它正在研究全空方法

h

m

不能在类方法+中使用header属性,只能在实例方法-中使用

这是其他编程语言中已知的某种静态方法。在objective-c中,您可以使用类方法来执行一些适合您创建的类的操作,但您必须记住,使用类方法不是对象操作。使用类方法不必创建对象,当然也不能访问对象的属性。

+方法是类级方法,属性是实例级变量。因此不可能设置它们,在什么情况下设置它们?如果需要保持状态,则不应使用类级方法。如果你真的喜欢这个,你可以保持状态

+ (BOOL)myBool:(NSNumber *)boolValue{

    static BOOL myBool = false;
    if (boolValue){
        myBool = [boolValue boolValue];
    }
    return myBool;
}
BOOL b = [MyClass myBool:nil];
[MyClass myBool:[NSNumber numberWithBool:NO]];
如果您不想让它成为公共接口的一部分,只需将它直接放入.m文件中,这样其他类就看不到它。然后,当您在另一个类方法中时,您可以执行以下操作

BOOL b = [self myBool:nil]; // get value
[self myBool:[NSNumber numberWithBool:YES]]; // set value
如果您出于某种原因希望从实例中访问此内容,您可以这样做

+ (BOOL)myBool:(NSNumber *)boolValue{

    static BOOL myBool = false;
    if (boolValue){
        myBool = [boolValue boolValue];
    }
    return myBool;
}
BOOL b = [MyClass myBool:nil];
[MyClass myBool:[NSNumber numberWithBool:NO]];

谢谢所以没有任何解决办法?我已经编辑了我的答案并解释了。你没有提供任何信息你的问题是什么-使用类方法与实例方法更像是解决某个问题的建议,但你没有提到你在这里的第一个问题。我的问题,我不能称之为虚空中的线性布尔。即使我打字,我也一无所获。我希望这对您有所帮助,所以解决方案是-如果您想使用对象属性,您应该使用实例方法-而不是类方法+。就这样。就像我说的,+方法不能访问属性,因为对象不存在。你在这里试图做什么毫无意义。请停下来阅读整个问答: