0

我现在有个按钮有问题。As it is, the user can take a picture using the camera or photo library and when it is chosen, they can then share this picture by pressing a button. 但是,如果他们在选择照片之前按下分享按钮,应用程序就会崩溃。我很好奇我怎么能参与活动警报,这样如果按下按钮并且没有媒体,它将显示警报消息并伴随一点振动。如果他们确实选择了一张图片,则会显示一个活动表,并且用户可以从此菜单中共享。菜单工作正常,但我知道 if/else 语句有缺陷。图片由“_timeSlip”表示。谢谢您的帮助!我的代码如下:

- (IBAction)shareButtonPressed
{
    if (_timeSlip !=nil)
{
    // Issue vibrate
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle: @"No Photo Chosen"
                                                   message: @"Please Select a Photo"
                                                  delegate: self
                                         cancelButtonTitle:@"Cancel"
                                         otherButtonTitles:@"OK",nil];


    [alert show];
    [alert release];
    }
    else {
    // 
    //step 1: set up path
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                     NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    //step 2: get path for local file
    NSString* path = [documentsDirectory stringByAppendingPathComponent:
                  @"time.png" ];

    //UIImage *localImage = [UIImage imageNamed:@"SDBack.png"];

    UIImage *localImage = _timeSlip;



    REMailActivity *mailActivity = [[REMailActivity alloc] init];


    RESaveToCameraRollActivity *saveToCameraRollActivity = [[RESaveToCameraRollActivity alloc] init];
    REPrintActivity *printActivity = [[REPrintActivity alloc] init];
    RECopyActivity *copyActivity = [[RECopyActivity alloc] init];
     // Compile activities into an array, we will pass that array to
    // REActivityViewController on the next step
    //
    NSArray *activities = @[mailActivity, saveToCameraRollActivity, printActivity,copyActivity];
    // Create REActivityViewController controller and assign data source
    //
    REActivityViewController *activityViewController = [[REActivityViewController alloc]       initWithViewController:self activities:activities];
    activityViewController.userInfo = @{
                                    @"image": localImage,
                                    @"text": @"Time Slip!"
                                    };

   [activityViewController presentFromRootViewController];
}
}
4

1 回答 1

1

根据提供的代码和您的描述,如果 _timeslip 为 nil,您似乎想要显示警报/振动,但如果 _timeslip 不是 nil,您将显示警报。此外,崩溃很可能是由您的“else”语句中的 _timeslip 为 nil 引起的。

于 2013-08-30T23:23:42.630 回答