目前有一种方法可以使用Facebook Pop框架进行自动布局,还是必须使用弹簧和支柱?我一直在阅读它是可能的,但我不知道语法是什么能够为视图的顶部约束设置动画.
所以我试图使用rest调用从数据库中获取一组Leaderboard对象.didLoadObjects返回0个对象,即使映射看起来是正确的:
RKObjectManager *svc = [RKObjectManager sharedManager];
NSString *resourcePath = leaderboardResourcePath;
RKObjectMapping* mapping = [svc.mappingProvider objectMappingForClass:[Leaderboard class]];
RKObjectLoader *loader = [[RKObjectManager sharedManager] loadObjectsAtResourcePath:resourcePath objectMapping:mapping delegate:self];
Run Code Online (Sandbox Code Playgroud)
这是didLoadObjects方法
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
if ([objectLoader.resourcePath isEqualToString:leaderboardResourcePath])
{
@synchronized(standings)
{
standings = objects;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是映射代码:
+ (void)setMappings
{
//Standings mapping
RKObjectMapping* leaderboardMapping = [RKObjectMapping mappingForClass:[Leaderboard class]];
[leaderboardMapping mapKeyPath:@"uname" toAttribute:@"uname"];
[leaderboardMapping mapKeyPath:@"geo" toAttribute:@"geo"];
[leaderboardMapping mapKeyPath:@"week" toAttribute:@"week"];
[leaderboardMapping mapKeyPath:@"year" toAttribute:@"year"];
[leaderboardMapping mapKeyPath:@"pts" toAttribute:@"pts"];
[[RKObjectManager sharedManager].mappingProvider addObjectMapping:leaderboardMapping];
RKObjectRouter *router = [RKObjectManager sharedManager].router;
// Define a default …Run Code Online (Sandbox Code Playgroud) 所以我正在阅读如何在实现API时避免在块中捕获自身?关于内存管理如何在完成块中引用self并且让我思考:以下内容是否会导致保留周期?
伪代码:
[AFnetworking requestGet:@"http://www.website.com" completionBlock:(^)(RequestObj* request, NSError* error){
[self.tableView reloadData];
}];
Run Code Online (Sandbox Code Playgroud)
忽略语法问题,self.tableView会导致保留周期吗?是否有必要做以下事情?
__weak id weakSelf = self;
[AFnetworking requestGet:@"http://www.website.com" completionBlock:(^)(RequestObj* request, NSError* error){
[weakSelf.tableView reloadData];
}];
Run Code Online (Sandbox Code Playgroud)
或者AFNetworking是否有某种记忆魔法可以阻止这种情况?
编辑Aaron Brager的礼貌
这里没有保留周期.但是如果你这样做了,在完成块中,你应该将weakSelf转换回一个强引用,这样它就不会在你的完成块中途被解除分配.
id strongSelf = weakSelf;
[strongSelf.tableView reloadData];
Run Code Online (Sandbox Code Playgroud)