2014-07-16 47 views
0

這段代碼如何不能在XCode中設置字符限制? 我寫在我的viewDidLoad()ViewController.m下在UITextFields中放置一個字符範圍

NSNumberFormatter* formatter= [[NSNumberFormatter alloc]init]; 
NSFormatter.numberStyle= NSNumberFormatterDecimalStyle; 
formatter.allowsFloats= NO; 
formatter.minimum= @5; 
formatter.maximum= @15; 

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    return [formatter numberFromString: textField.text]!= nil; 
} 

錯誤: http://imgur.com/h83hzsw

+1

在這種特殊情況下,Xcode的出錯信息實際上是有幫助的。閱讀它們。 – Kreiri

+0

@Kreiri好吧..我改變了文件類型爲C++,它修復了一個錯誤,但現在我仍然得到所有這些,我卡住了。 http://imgur.com/DKLnblG – Julian

回答

1

從錯誤中,它看起來像你使用的不是實際的方法,這裏面的代碼(如viewDidLoad )由於您需要使用多種方法,因此您需要在整個課程中都可以訪問您的formatter。嘗試了一下週圍感動的事情:

@implementation ViewController 
{ 
    NSNumberFormatter *formatter; 
} 

... 

- (void)viewDidLoad 
{ 
    ... 

    formatter = [[NSNumberFormatter alloc] init]; 
    formatter.numberStyle= NSNumberFormatterDecimalStyle; 
    formatter.allowsFloats= NO; 
    formatter.minimum= @5; 
    formatter.maximum= @15; 
} 
+0

現在,我收到一條錯誤消息:「使用未聲明的標識符'textFieldShouldReturn'」:44 - http://pastebin.com/SpBV6hvB – Julian

+0

格式和您的位置順序正在把你的代碼仍然非常關閉。我會建議查看一些示例項目或教程的代碼。例如,你正試圖把'textFieldShouldReturn'方法放在'IBAction'的方法內。不是事情的方式。 – Stonz2

0

你所得到的錯誤「初始值設定元素不是編譯時常」因爲你是初始化變量NSNumberFormatter* formatter不是方法或函數,編譯器爲此期待一個常數值。

看到這麼回答這裏更多的細節 - Initializer element is not a compile-time constant

+0

好吧,我試了這個,我從10個錯誤去了1.現在我卡住了,因爲它說:「使用未聲明的標識符'textFieldShouldReturn'」在線:44.這是我的新代碼:http://pastebin.com/ qJc7bP16你能幫忙嗎我一直試圖弄清楚這一點。 – Julian

+0

我已經檢查過您最近更新的代碼,並且您仍然在初始化實現內部但在任何方法或函數之外的名爲formatter的變量。有沒有理由爲什麼它不是一個伊娃或財產?變量formatter的必需範圍是什麼? – Bamsworld

+0

我試圖在選定的文本框上添加一個字符限制,但是我放棄了所有的想法,現在刪除了所有內容,導致了很多錯誤,而且我仍然是Objective-C的初學者。但現在我只是試圖運行我的應用程序,它給了我這個錯誤:/Users/Julian/Desktop/Journey/Journey/Base.lproj/Main.storyboard:由於缺乏入口點而無法訪問場景,並且沒有通過-instantiateViewControllerWithIdentifier:進行運行時訪問的標識符。 – Julian

相關問題