我有一個小片的代碼,設置的NSString類用戶名到的值被輸入到一個的UITextField和(strUserName中),則按鈕。這工作得很好: UsernameViewController.m的NSString被設置但顯示爲空從另一個類調用時 - 的iOS
#import <UIKit/UIKit.h>
#import "Username.h"
@interface UsernameViewController : UIViewController
{
Username *username;
__weak IBOutlet UITextField *test;
}
@property (nonatomic, retain)IBOutlet UITextField *txtUsername;
@property (nonatomic, retain) IBOutlet UITextField *test;
-(IBAction)setUsername;
@end
#import "UsernameViewController.h"
#import "Username.h"
@implementation UsernameViewController
@synthesize test=_test;
- (void)viewDidLoad
{
[super viewDidLoad];
username = [[Username alloc] init];
}
-(IBAction)setUsername
{
NSString *inputUsername = self.test.text;
NSLog(@"inputUsername is: %@", inputUsername);
username.strUsername = inputUsername;
NSLog(@"the username.strUsername is now: %@", username.strUsername);
}
我的NSLog輸出顯示的UITextField輸入和NSString的制定者正在努力:
LocNews1[6699:707] inputUsername is: Harry brown
LocNews1[6699:707] the username.strUsername is now: Harry brown
現在,當它擊中這個視圖返回的返回按鈕我回到了UITableViewController。然後我執行下拉刷新動作和其所謂的以下方法:
TestViewController.m(的UITableViewController型)
#import "TestViewController.h"
#import "ViewController.h"
#import "DetailViewController.h"
#import "AppDelegate.h"
#import "NewsArticle.h"
#import "ResultsCustomCell.h"
#import "XMLParser.h"
@implementation TestViewController
//some code
- (void)addItem
{
username = [[Username alloc] init];
// Use XMLparser to check for updated new feeds.
if(username.strUsername != NULL)
{
NSLog(@"ViewController username.strUsername is:%@",username.strUsername);
activeUsername = username.strUsername;
}
else
{
NSLog(@"%@",username.strUsername);
activeUsername = @"";
}
NSString *myLat = [[NSString alloc] initWithFormat:@"%f", locationManager.location.coordinate.latitude];
NSString *mylong = [[NSString alloc] initWithFormat:@"%f", locationManager.location.coordinate.longitude];
XMLParser *parseQuestionnaire = [[XMLParser alloc] init];
NSLog(@"username %@",activeUsername);
newsArticle = [parseQuestionnaire parseXML:myLat:mylong:activeUsername];
[self.tableView reloadData];
[self stopLoading];
}
然而,這示出了的NSLog輸出爲:
LocNews1[6699:707] ViewController username.strUsername is:
正如你可以看到在UsernameViewController.m中設置了字符串,但是當我嘗試在TestViewController.m中調用字符串時,它顯示爲空白(NSLog中沒有空值,只是空白)。
這可能是什麼原因造成的?
編輯:Username.h /米
#import <Foundation/Foundation.h>
@interface Username : NSObject
{
NSString *strUsername;
}
@property (nonatomic, retain) NSString *strUsername;
@end
#import "Username.h"
@implementation Username
@synthesize strUsername;
-(id)init
{
strUsername = [[NSString alloc] init];
return self;
}
@end
注意:用戶名在兩個TestViewController.h和UsernameViewController.h等宣稱:用戶名*用戶名;
「username」聲明在哪裏?它是一個實例變量?全局變量? – Chuck 2012-02-29 23:35:50
代碼已更新,以顯示用戶名類和它的聲明 – HGomez90 2012-02-29 23:44:40