2014-04-07 187 views
-3

我只是將這個例子顯示出來比文字更簡單。將NSNumber從一種方法傳遞給另一種方法

.h文件中

@interface Something : UITableViewController <UIAlertViewDelegate, GADBannerViewDelegate> 
{ 
    NSNumber *myNumber; 
} 

.m文件

-(void) someMethod1 
{ 
NSLog @("is it reaching here? %@", myNumber); 
/// returns Null 

} 

-(void) someMethod2 
{ 

FixturesObject *closestObject; 
NSTimeInterval closestInterval = DBL_MAX; 
for (FixturesObject *myObject in newFixtureObjectArray) { 
    if (myObject != nullValue) { 
    NSTimeInterval interval = ABS([myObject.date2 timeIntervalSinceDate:[NSDate date]]); 
    if (interval < closestInterval) { 
     closestInterval = interval; 
     closestObject = myObject; 
    } 
    } 
     roundFinder = closestObject.round; 
     NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; 
     [f setNumberStyle:NSNumberFormatterNoStyle]; 
     myNumber = [f numberFromString:roundFinder]; 
} 
NSLog(@"What is my number? %@", myNumber); 
// this returns like.. 26 

} 

如何從方法傳遞值低於另一種方法?它根本不適合我。

謝謝你的時間。

+3

這是有點什麼參數。 (請在學習Objective-C之前學習基礎編程,我不介意浪費你自己的時間,但是你也會浪費我們的許多時間。) –

+1

請顯示你從哪裏調用someMethod1和someMethod2。 someMethod1在someMethod2之後調用並使用'Something'的同一個實例嗎? – Anna

+0

我希望能夠在someMethod1中爲myNumber做一件事,並獲得與我在someMethod2 – user3504848

回答

0

myNumber是您擁有方法的同一對象的一部分。你不需要把它傳遞到任何地方。你只需要創建一個屬性setter/getter。

+2

爲什麼要訪問者提供幫助? Ivars可以在對象自己的方法中訪問... –

+0

爲myNumbers添加setter/getter方法不是必需的。但OP可能想從另一個對象訪問它。由於OP是新手,因此使用@property添加屬性對他/她來說是一個很好的練習。 –

0

方法,您要發送的號碼必須能夠接受數字作爲參數,像這樣:

-(void) someMethod1:(NSNumber*)number{ 

    if (number) NSLog @("is it reaching here? %@", myNumber); 
    /// returns Null 

    } 

但在這種情況下,看看有什麼@Black青蛙告訴你了。因爲它是「全方位」的,所以你不需要通過這個。

+0

我只是想能夠在我的viewdidload內讀取它 – user3504848

+0

如果你能解釋你面臨的問題會更容易理解。 – Marcal

+0

我正在做一些數學來獲取一個parseXML方法內的數字,然後這個數字存儲在一個NSNumber變量內,然後在viewDidLoad裏面我想要檢索存儲在parseXML方法內的那個數字。 – user3504848

相關問題