This is just an educated guess because I've never used the Social framework, but it's too long for a comment.
Judging by this answer I would say that you are using SLRequest
wrong. I'm pretty sure that the exception comes from your data object which is interpreted as a NSString (or NSURL).
Maybe you should use addMultipartData:withName:type:filename:
to attach your photo to the request.
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"My hat image", @"message", nil];
NSURL *feedURL = [NSURL URLWithString:@"https://graph.facebook.com/me/photos"];
SLRequest *feedRequest = [SLRequest
requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:feedURL
parameters:parameters];
[feedRequest addMultipartData:data
withName:@"source"
type:@"multipart/form-data"
filename:@"Test Image"];
which is basically the same code as another answer