Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios ivar有两种不同的行为方式,用法相同_Ios_Objective C_Xcode_Core Data - Fatal编程技术网

Ios ivar有两种不同的行为方式,用法相同

Ios ivar有两种不同的行为方式,用法相同,ios,objective-c,xcode,core-data,Ios,Objective C,Xcode,Core Data,我尝试了两个不同的应用程序来测试一些东西 第一个应用程序很简单 ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController { NSMutableString *text; } @property (nonatomic, retain)NSMutableString *text; @end 这使得事物看起来像是用相同的名字合成的,使它们成为相同的变量。使其打印以下

我尝试了两个不同的应用程序来测试一些东西

第一个应用程序很简单

ViewController.h

#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
    NSMutableString *text;
}
@property (nonatomic, retain)NSMutableString *text;
@end
这使得事物看起来像是用相同的名字合成的,使它们成为相同的变量。使其打印以下内容:

2013-09-05 11:20:14.527 testIvar[12965:c07] FOO
2013-09-05 11:20:14.528 testIvar[12965:c07] FOO2
2013-09-05 11:20:14.529 testIvar[12965:c07] 1:FOO2 - 2:FOO2
即使我使用%p打印text和self.text的地址记忆,我也会得到相同的地址

*我的另一个应用程序测试是*

AppDelegate.h

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
    NSManagedObjectContext *managedObjectContext;
    NSManagedObjectModel *managedObjectModel;
    NSPersistentStoreCoordinator *persistentStoreCoordinator;

}

@property (strong, nonatomic) UIWindow *window;

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;

@property ( strong, nonatomic ) UINavigationController *navigationController;

@end
如果我这样做,此应用程序将无法工作

masterVC.MOC = managedObjectContext;
但只有当我这样做的时候,我才能工作

masterVC.MOC = self.managedObjectContext;
即使我打印managedObjectContext和self.managedObjectContext的mem地址 我有两个不同的地址


这怎么可能?在两个不同的应用程序中发生同样的事情,以两种不同的方式表现

masterVC.MOC=self.managedObjectContext只起作用,因为在这种情况下已重写getter方法

仔细看,您会发现在AppDelegate中有一个方法

- (NSManagedObjectContext *)managedObjectContext

当您通过self引用对象时,将调用重写的getter方法。

我如何才能给您多个“绿色复选标记”?该死,大约20个小时了,我都快疯了!!!!你是我的偶像哈哈:呵呵,好朋友。很高兴它帮助了你!!这帮了大忙!又来了
masterVC.MOC = self.managedObjectContext;
- (NSManagedObjectContext *)managedObjectContext