2012-11-14 56 views
2

我對Objective-C非常陌生。我已經用VB.NET開發了幾十個桌面應用程序,並用真正的Stupid for Mac開發了幾十個桌面應用程序。我已經閱讀了幾本關於Objective-C函數的精裝書和PDF書籍。他們只討論如何用整數創建一個函數。我想超越整數。例如,以下簡單的VB.NET函數涉及一個字符串,返回true或false(布爾值)。這非常簡單直接。Objective-C基礎知識:使用字符串創建函數

Function SayBoolean (ByVal w As String) As Boolean 
If w = "hello" Then 
    Return True 
Else 
    Return False 
End if 
End Function 

以下函數返回字符串(文件路徑)的字符串(文件擴展名)。

Function xGetExt(ByVal f As String) As String 
    'Getting the file extension  
    Dim fName1 As String = Path.GetFileName(f) 
    Dim fName2 As String = Path.GetFileNameWithoutExtension(f) 
    Dim s As String = Replace(Replace(fName1, fName2, ""), ".", "") 
    Return s 
End Function 

那麼如何指定字符串參數並在Objective-C中創建函數時返回一個布爾值或字符串呢?到目前爲止Objective-C對我來說非常困難。

謝謝你的幫助。

湯姆

+0

我不知道你讀過什麼書只涵蓋傳遞整數,但它們聽起來很糟糕。您應該在https://developer.apple.com/devcenter/ios/index.action找到足夠的資源。 – Joe

回答

2

例1

//The return value is a boolean (BOOL) 
- (BOOL)sayBoolean:(NSString*)w //w is the string parameter 
{ 
    //Use isEqualToString: to compare strings 
    return [w isEqualToString:@"hello"]; 
} 

例2

//The return value is a string 
- (NSString*)xGetExt:(NSString*)f 
{ 
    //pathExtension exists as an NSString method in a category 
    // and returns a string already. 
    return [f pathExtension]; 
} 

爲什麼你需要使用isEqualToString:Understanding NSString comparison

+0

是的,謝謝。 –

+0

如何使用您透過如果循環指定像 如果W =「你好」的字符串,然後 結束時,如果 如果我寫 如果(W == @「你好」){ } 我收到一個錯誤。 謝謝, –

+0

它返回一個BOOL,所以沒有理由爲'if'語句。如果你想要一個if語句,那麼它會是'if([w isEqualToString:@「hello」])return YES;否則返回NO;' – Joe