【发布时间】:2013-04-02 08:23:46
【问题描述】:
我有一个 NSObject 类,它有一个名为 tweetTitle 的 NSString;
TweetDesc.h 文件
#import <Foundation/Foundation.h>
@interface TweetDesc : NSObject
@property (strong, nonatomic) NSString * tweetTitle;
-(void) setFullTweetTitle:(NSString *) fullTweetTitle;
@end
TweetDesc.m 文件
@implementation TweetDesc
@synthesize tweetTitle;
-(void) setFullTweetTitle:(NSString *) fullTweetTitle
{
self.tweetTitle = fullTweetTitle;
}
@end
我有三个类(视图控制器),FirstViewController、SecondViewController 和 ThirdViewController。
这里是FirstViewController的代码 FirstViewController.h
@interface TweetViewController : UIViewController <UITextViewDelegate>
@property (strong, nonatomic) NSString * tweet;
@property (weak, nonatomic) IBOutlet UITextView *tvTweetTitle;
- (IBAction)btnCreateTweet:(id)sender;
@end
FirstViewController.m
@implementation TweetViewController
@synthesize tvTweetTitle, tweet;
- (void)viewDidLoad
{
[super viewDidLoad];
self.tvTweetTitle.delegate = self;
}
- (IBAction)btnCreateTweet:(id)sender
{
tweet = [[NSString alloc]initWithFormat:@"%@", tvTweetTitle.text];
TweetDesc * td = [[TweetDesc alloc]init];
[td setFullTweetTitle:tweet];
SecondViewController * svc = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
[self.navigationController pushViewController:ivc animated:YES];
}
我的问题是:如何在第二个和第三个 ViewController 中使用 tweetTitle 而无需创建 TweetDesc 类的新实例并在每个 ViewControler 中再次设置 tweetTitle。
在我尝试的第二个视图控制器中:
TweetDesc * td = [[TweetDesc alloc]init];
NSLog(@"%@", td.tweetTitle);
但我得到 null,似乎它已经发布或其他什么。
提前感谢您的帮助。
【问题讨论】:
-
当你写
TweetDesc * td = [[TweetDesc alloc]init];时,对于 secondViewController,你还没有为实例变量tweetTitle分配任何值,因此为空。如果你写[td setFullTweetTitle:@"some string"];THEN 它被赋值。
标签: iphone ios objective-c xcode