变量用@property (nonatomic, copy) 定义了,还有必要在@interface 里定义吗?   @interface MapLocationInfo : UIViewController
{
    NSString *lat;//经度  变量用@property (nonatomic, copy) 定义了,还有必要在@interface 里定义吗? 在这里定义的变量跟@property定义的变量有什么区别?}@property (nonatomic, copy) NSString *lat;//经度
@end

解决方案 »

  1.   

    @interface中也要定义的,interface中定义的是类中的成员,而@property (nonatomic, copy) NSString *lat;//经度,这个是表明这个属性(nonatomic非原子是为了表示当前对象是在一个线程中跑的,这样可以节省资源;copy表示该属性会自动copy赋值的对象),与@synthesize配对使用可以让编译器自动生成类似java中的get和set方法。
      

  2.   

    @interface MapLocationInfo : UIViewController
    {
    //定义变量
    }
    //定义方法@end完全两个东西。
      

  3.   

    这个问题将在IOS SDK5中得到很好的解决,在IOS SDK5中,变量可以只在@property中定义,并且新增新的属性,strong。
    而且IOS SDK5 提供ARC支持,以后写OC程序就不用担心内存问题了。不过如果你现在还是在用SDK4或者更低版本的话,那就必须在Interface中申明了。(注:虽然苹果现在已经提供了SDK5的下载使用,但是目前APPStore还不支持提交基于SDK5的应用程序)
      

  4.   

    只在property中申明的调用时要用self.lat