我见过以下代码:
//example.h
MKMapView * mapView1;
@property (nonatomic, retain) MKMapView * mapView;
//example.m
@synthesize mapView = mapView1
Run Code Online (Sandbox Code Playgroud)
问题:mapView和mapView1之间有什么关系?它是否为mapView1创建了set和get方法?
谢谢 !
我在我的一个课程中有这个代码:
- (void) processArray
{
NSMutableArray* array = [self getArray];
. . .
[array release];
array = nil;
}
- (NSMutableArray*) getArray
{
//NO 1:
NSMutableArray* array = [[NSMutableArray alloc]init];
//NO 2:
NSMutableArray* array = [NSMutableArray array];
. . .
return array;
}
Run Code Online (Sandbox Code Playgroud)
NO 1:我创建一个数组并将其返回.在processArray方法中我释放它.
NO 2:我通过简单地打电话得到一个数组array.因为我不是这个的拥有者,所以我不需要在processArray方法中释放它.
哪个是最佳选择,NO 1还是NO 2?或者有更好的解决方案吗?
嘿fellas,在通过调试器运行时我看到第二次设置变量时出现以下内容(时间戳和校验和是一个接一个地通过这个方法设置的,当没有DataFeedManager存在时它可以正常工作,但是当它再次返回时它在设置校验和时崩溃):

这是感兴趣的功能:
//sets specified attribute to the passed in value while ensuring that only one instance of the DataFeedManager exists
-(void)setItemInDFMWhilePreservingEntityUniquenessForItem:(attribute)attr withValue:(id)value {
SJLog(@"CoreDataSingleton.m setItemInDFMWhilePreservingEntityUniquenessForItem");
NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"DataFeedManager" inManagedObjectContext:[self managedObjectContext]];
[fetchRequest setEntity:entity];
NSUInteger numEntities = [[self managedObjectContext] countForFetchRequest:fetchRequest error:&error];
if (numEntities == NSNotFound) { // ERROR
//...
} else if (numEntities == 0) {
DataFeedManager *dfm = (DataFeedManager *)[NSEntityDescription insertNewObjectForEntityForName:@"DataFeedManager"
inManagedObjectContext:[self managedObjectContext]];
if (attr == checksumAttr) { //BLOCK …Run Code Online (Sandbox Code Playgroud)