Iphone 关闭以从类方法指定属性
我只是好奇,好像有什么方法可以分配一个从类方法触发的属性 例: 在那个调用中,我得到了Iphone 关闭以从类方法指定属性,iphone,objective-c,ios,ipad,cocoa,Iphone,Objective C,Ios,Ipad,Cocoa,我只是好奇,好像有什么方法可以分配一个从类方法触发的属性 例: 在那个调用中,我得到了NSURLConnection的响应,但是,我试图在另一个类中使用它,并将该字典设置为属性,但它给了我错误,因为这是一个类方法。asyncResponse是一个“委托调用”,我使用它在运行时指向任何特定的类 谢谢。您可以使用许多选项来存储变量。为什么在类方法中需要属性。类方法在没有实例的角色时运行。但是,当然,您可以通过在class方法中创建类的实例并将值存储在对象中。另一种方法是创建一些全局变量并将值分配给它
NSURLConnection
的响应,但是,我试图在另一个类中使用它,并将该字典设置为属性,但它给了我错误,因为这是一个类方法。asyncResponse是一个“委托调用”,我使用它在运行时指向任何特定的类
谢谢。您可以使用许多选项来存储变量。为什么在类方法中需要属性。类方法在没有实例的角色时运行。但是,当然,您可以通过在class方法中创建类的实例并将值存储在对象中。另一种方法是创建一些全局变量并将值分配给它,这样就可以通过类访问它 创建实例将变量存储到属性中
+ (void)asyncResponse:(NSDictionary*)response:(NSError*)error{
MyClass *me = [[MyClass alloc] init];
me.someProperty = response;
}
但是,我不认为您在寻找这个,因为它是类和属性的非常简单的使用
您可以做的另一件事是在实现中创建一些静态变量,然后通过类访问这些变量。您甚至可以为它创建自己的自定义getter和setter,以便于使用
@interface MyClass:NSObject
+(void)setResponse:(NSDictionary*)response;
+(NSDictionary*)response;
@end
NSDictionary *globalResponse;
@implementation MyClass
+(void)setResponse:(NSDictionary*)response{
if(response != globalResponse){
globalResponse = response;
}
}
+(NSDictionary*)response{
return globalResponse;
}
您可以在initialize或load方法中设置响应的默认值。这将创建一个简单的类级属性。您可以这样做,但您希望在什么实例上更改该属性?所有的例子还是只有一个?如果一个,哪个?@RamyAlZuhouri,我想分配给“一”属性,该属性可以是self.username。因此,通过这种方式,我可以从响应字典中提取一个元素并在本地分配它。然而,编译器在这样做时给了我一个错误。我们怎么做呢?静态方法不会在特定实例上调用,因此关键字self无效。好吧,学究一点,
self
在类方法范围内有效。它只指向类
@interface MyClass:NSObject
+(void)setResponse:(NSDictionary*)response;
+(NSDictionary*)response;
@end
NSDictionary *globalResponse;
@implementation MyClass
+(void)setResponse:(NSDictionary*)response{
if(response != globalResponse){
globalResponse = response;
}
}
+(NSDictionary*)response{
return globalResponse;
}