我试图访问一些用户的信息,包括电子邮件.为此,我使用Graph API来调用此方法:
[facebook requestWithGraphPath:@"me" andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
它返回用户信息,没有电子邮件信息(生日也缺失).我设置了所有权限并使用多个帐户(其中包含电子邮件和生日作为公共信息)进行了测试,并接受了所有对话框的请求.
这是我的初始:
if(!facebook) {
facebook = [[Facebook alloc] initWithAppId:[self _APP_KEY] andDelegate:self];
NSArray *array = [NSArray arrayWithObjects: @"email", @"user_birthday", @"publish_stream", @"offline_access", nil];
[self setPermissions:array];
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:permissions];
}
else {
[self getUserInfo];
}
Run Code Online (Sandbox Code Playgroud)
登录回调:
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults …Run Code Online (Sandbox Code Playgroud) 我正在尝试在iOS 5中创建自己的自定义代理.在iOS 4中,我通常使用'Assign'属性:
@property(nonatomic, assign) id<AnyProtocol> delegate;
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试合成时,我收到以下错误消息:
error: Automatic Reference Counting Issue: Existing ivar 'delegate' for unsafe_unretained property 'delegate' must be __unsafe_unretained
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?