將值賦給我的一個對象時出現奇怪的錯誤。盡我所能,編譯器認爲我正在分配一個只讀變量。它在myPlace.publicLocation ...行中給我「作爲賦值左操作數所需的左值」。使用對象時出現錯誤:「作爲賦值左操作數所需的左值」
我確定這是一個經典的新手錯誤 - 我在哪裏出錯?
CSPlace *myPlace;
myPlace.publicLocation.coordinate.latitude =
[[separatedData objectAtIndex:0] floatValue];
類:
#import <CoreLocation/CLLocation.h>
@interface CSPlace : NSObject {
CLLocation *publicLocation;
}
@property (copy, nonatomic) CLLocation *publicLocation;
@end
#import "CSPlace.h"
@implementation CSPlace
@synthesize publicLocation;
@end
ObjC2引入了一個名爲properties的新「特徵」。在必須被列爲有史以來最愚蠢的語言設計選擇之一的時候,他們選擇超載標準C'。運營商爲此目的。這不僅僅是奇怪而神祕的方式讓人難以理解,屬性既可以是l值,也可以是r值。除此之外,屬性可以是隻讀或讀寫的,這意味着破譯一個左值屬性訪問鏈可能是不明確的。 – johne 2009-07-20 13:31:33
謝謝johne的解釋:)奇怪的選擇確實,很倒黴。 – Florian 2009-07-20 14:37:36