2012-08-14 177 views
0

有人可以幫我弄清楚我可能會錯過什麼嗎?NSString總是返回零

我得到這個錯誤,看起來像超簡單的東西,但我不知道它來自哪裏!有幾個關於它的帖子。但似乎沒有關係。我做的是,

設置屬性,

@property (weak, nonatomic) NSString * rate; 

,並在我viewDidLoad中,

self.rate = @"bananas"; 
NSLog(@"self.rate %@",self.rate); 

我不斷收到在控制檯 - > self.rate(空)

任何幫助最受讚賞 謝謝!

Nuno

p.s.我也嘗試設置一個字符串指針,並試圖分配] init](但我真的沒有看到任何理由,因爲這是問題,它不是)...迄今爲止沒有成功。

此外,物業@synthesized

+1

爲什麼'weak'?你有沒有嘗試設置它'strong'呢? – Tim 2012-08-14 21:21:56

+0

是的,我沒有。沒有用:\ – nmdias 2012-08-14 21:25:38

+0

也許自己變成了零?有一個想法:-S – epatel 2012-08-14 21:26:03

回答

3

像@Guven說,我真的同時設定一個setter,因爲我是用@synthesize時,我不應該。

我不知道我有一個「舊」的方法setRate代碼周圍鋪設。

謝謝大家!

+0

不錯!追蹤這樣的錯誤總是非常耗時。 – Guven 2012-08-14 21:53:04

1

讓你的屬性強大的性能

+3

甚至更​​好,使它'複製'。 – Stream 2012-08-14 21:22:53

+0

剛剛嘗試過。 self.rate = [@「bananas」copy];沒有成功:/ – nmdias 2012-08-14 21:27:39

+0

另外(複製,非原子),也沒有成功。 – nmdias 2012-08-14 21:35:08

1

可能的解決方案:

1.(只要沒有其他具有很強的指向它的指針)

@property (strong, nonatomic) NSString * rate ;  //or use (copy, nonatomic), depends.. 

* 2.你忘了

@synthesize rate = _rate; 

3.自爲零

編輯:

4.setter /吸氣車

×修正爲2,由於搶在下面的評論中指出:

「從Xcode 4.4開始,@synthesize是可選的。而在早期版本中,這將是一個編譯錯誤」

+1

從@ Xcode 4.4開始,'@ synthesize'是可選的。在早期版本中,這將是一個編譯錯誤。 – Rob 2012-08-14 21:32:09

+0

我剛剛試過,(複製,非原子)。沒有成功。這很奇怪:\我可以訪問多個屬性。但不是這個。在這種情況下,self是我當前的ViewController。 – nmdias 2012-08-14 21:34:09