Ios 如何在块内为self赋值?
我正在尝试使用来自服务器的数据刷新我的类实体。所以我需要在成功块中为self赋值。当我在块引用self之前使用_弱时,赋值后self中有nil。没有弱,我有一个循环。那么,是否可以在块内为self指定一个新值?如果不是,是否有其他方法刷新自我值Ios 如何在块内为self赋值?,ios,objective-c,xcode,self,Ios,Objective C,Xcode,Self,我正在尝试使用来自服务器的数据刷新我的类实体。所以我需要在成功块中为self赋值。当我在块引用self之前使用_弱时,赋值后self中有nil。没有弱,我有一个循环。那么,是否可以在块内为self指定一个新值?如果不是,是否有其他方法刷新自我值 - (void) refreshAssignment:(void (^)())successBlock Error:(void (^)(NSString *errorMessage))errorBlock{ NSString *subUrl = @"/
- (void) refreshAssignment:(void (^)())successBlock Error:(void (^)(NSString *errorMessage))errorBlock{
NSString *subUrl = @"/getAssignmentById";
NSDictionary *prs = @{@"assignmentId":self.taskId,
@"mask":[NSNumber numberWithInteger:1]
};
__block __weak Assignment* Self = self;
[[NetworkManager sharedSource] getStandart:prs andUrl:subUrl Success:^(NSDictionary *data) {
Self = [[NetworkManager sharedSource] assignmentsWithArray:data[@"data"] Type:Self.type][0];
} Error:^(NSString *errorMessage) {
errorBlock(errorMessage);
}]; }
正确的
weakSelf
模式是:
__weak typeof(self) weakSelf = self;
但是您不能将任何内容分配给self
只有在init
方法中才有可能分配给self
您可能希望将结果分配给类中的属性。正确的
weakSelf
模式是:
__weak typeof(self) weakSelf = self;
但是您不能将任何内容分配给self
只有在init
方法中才有可能分配给self
您可能希望将结果分配给类中的属性。因此,如果我调用我的方法init,如何在块内为self分配值__弱(自我)弱类型self=self;-这是一个指向self的常量链接。不可能给弱者分配任何东西。你不能给自己分配任何值
self
是指向对象的指针。因此,在块内部,可以修改对象的属性,但不能修改对象本身。你到底想做什么?我想用服务器上的数据刷新self对象我的建议是刷新对象内部的属性。因此,如果我调用我的方法init,如何在块内为self赋值__弱(自我)弱类型self=self;-这是一个指向self的常量链接。不可能给弱者分配任何东西。你不能给自己分配任何值self
是指向对象的指针。因此,在块内部,可以修改对象的属性,但不能修改对象本身。你到底想做什么?我想用服务器上的数据刷新self对象我的建议是刷新对象内部的属性。这真的没有意义。您创建了一个名为Self
的新变量,该变量被初始化为Self
,但您随后在一个块中为其分配了其他内容,但是Self
在该分配之后没有被任何人使用,因此不清楚分配的意义。这没有真正意义。您创建了一个名为Self
的新变量,该变量被初始化为Self
,但您随后在块中为其分配了其他内容,但是Self
在该分配之后没有被任何人使用,因此不清楚分配的意义。