0

我正在尝试访问_urlS外部initWithURL:。如果我 NSLog 在里面,我会得到一个值,但如果我NSLog在里面websiteload:,我会得到(null).

真的很奇怪,有人有什么想法吗?

.h 文件:

@interface WebsiteViewController : UIViewController <UIPopoverControllerDelegate, UISplitViewControllerDelegate, MFMailComposeViewControllerDelegate, UIWebViewDelegate, UITextFieldDelegate> {
    UIPopoverController *popoverController;
    UIBarButtonItem *barButton;

    NSString *urlWeb;

    IBOutlet UIWebView *Website;

    UILabel *testLabel;

    IBOutlet UIButton *btn;

    IBOutlet UILabel *lbllong;

    IBOutlet UIActivityIndicatorView *activityIndicator;
}

@property (nonatomic, retain) IBOutlet UIPopoverController *popoverController;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *barButton;
@property (nonatomic, retain) NSString *urlS;

- (void)addBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc;
- (void)removeBarButtonItem;

- (id)initWithURL:(NSString *)postURL;


@end

.m 文件:

#import "WebsiteViewController.h"

@interface WebsiteViewController ()

@end

@implementation WebsiteViewController

@synthesize barButton, popoverController;
@synthesize urlS = _urlS;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (id)initWithURL:(NSString *)postURL
{
    self = [super init];
    if (self) {
        _urlS = [[postURL stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] retain];
        [lbllong setText:_urlS];
    }
    return self;
}

-(IBAction)websiteload:(id)sender {

    NSLog(@"%@", _urlS);


}

- (void)addBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc {

}
- (void)removeBarButtonItem {

}

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

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

@end
4

1 回答 1

3

您需要在分配对象时保留它,因为它 stringByTrimmingCharactersInSet:返回一个自动释放的实例,因此它会因为您不拥有它而被释放。

将分配更改为

_urlS = [[postURL stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] retain];
于 2013-04-09T18:10:35.187 回答