Question

So my code says

no visible @interface for UIImagePicker Controller

I am using a Tab View Controller My code for my FirstViewController.m is

#import "FirstViewController.h"
@interface FirstViewController () <UIImagePickerControllerDelegate, UINavigationControllerDelegate> {
UIImagePickerController *bailey;
UIImagePickerController *baileys;
UIImage *image;
IBOutlet UIImageView *imageView;
}
-  (IBAction)takePhoto;
-  (IBAction)chooseExisting;
@end
@implementation FirstViewController
 - (IBAction)takePhoto {
bailey = [[UIImagePickerController alloc]init];
bailey.delegate = self;
[bailey setSourceType:UIImagePickerControllerSourceTypeCamera];
[self presentViewController:bailey animated:YES completion:NULL];
}
- (IBAction)chooseExisting {
baileys = [[UIImagePickerController alloc] init];
baileys.delegate = self;
[baileys setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[self presentViewController:baileys animated:YES completion:NULL];
}
- (void) imagePickerController:(UIImagePickerController *)picker                 didFinishPickingMediaWithInfo:(NSDictionary *)info {
image = [info objectForKey:UIImagePickerControllerOriginalImage];
[imageView setImage:image];
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (void) imagePickerControllerDidCancel:(UIImagePickerController *)bailey {
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (IBAction)ShareFB {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
    slComposeViewController = [SLComposeViewController     composeViewControllerForServiceType:SLServiceTypeFacebook];
    [slComposeViewController addImage:[UIImage imageNamed:@"image"]];
    [slComposeViewController addURL:[NSURL URLWithString:@"http://www.agfg.com.au"]];
    [self presentViewController:slComposeViewController animated:YES completion:NULL];
    //I borrowed these lines of code from http://www.bit.ly/174eqjy
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *appFile = [documentsDirectory stringByAppendingString:@"upload.png"];
    NSString *upLoad = [documentsDirectory stringByAppendingString:@"upload.png"];
    NSData *myData = [[NSData alloc]initWithContentsOfFile:appFile];
    //Here is the line that fails
    [bailey addAttachmentData:myData mimeType:@"image/png" fileName:@"upload"];
    //Up to here are the borrowed code lines.
    }
    else {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Facebook Account     Detected" message:@"There are no Facebook Accounts Detected. You can configure them in Settings." delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
    [alert show];

    }}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end

And my code for my FirstViewController.h is

#import <UIKit/UIKit.h>
#import <Social/Social.h>
 @interface FirstViewController : UIViewController {SLComposeViewController    *slComposeViewController;
UIImage *upLoad;}
- (IBAction)ShareFB;
@end

My app is designed to Take a photo and display the photo (and it does that) and then save that image to the local documents folder on the app (which I got from another post) and then specify that image to upload to Facebook (which I have)

All that works except the saving to a local documents.

Was it helpful?

Solution 2

With the help of Karthika, and his facebook upload code, I was typing it in when I realised that I did not need to implement local documents saving.

Facebook let me add the image in without saving it.

Thanks though Karthika, I could not have done it without you.

OTHER TIPS

If you need to store file in documents directory, use like this,

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Images"];

if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
{
            [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil];
}

NSString *imageFilePath = [NSString stringWithFormat:@"%@/%@",dataPath,@"upload.png"];

UIImage *image = [UIImage imageNamed:@"image"]; //Here place your image
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];
[imageData writeToFile:imageFilePath atomically:YES];

If you need to attach image in facebook, use this statement,

[slComposeViewController
 addAttachmentData:UIImagePNGRepresentation(image, 1) mimeType:@"image/png" fileName:@"upload.png"];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top