Ios 如何在块内为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 = @"/

我正在尝试使用来自服务器的数据刷新我的类实体。所以我需要在成功块中为self赋值。当我在块引用self之前使用_弱时,赋值后self中有nil。没有弱,我有一个循环。那么,是否可以在块内为self指定一个新值?如果不是,是否有其他方法刷新自我值

- (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
在该分配之后没有被任何人使用,因此不清楚分配的意义。