相关疑难解决方法(0)

@synthesize究竟做了什么?

我见过以下代码:

//example.h
MKMapView * mapView1;
@property (nonatomic, retain) MKMapView * mapView;

//example.m
@synthesize mapView = mapView1
Run Code Online (Sandbox Code Playgroud)

问题:mapViewmapView1之间有什么关系?它是否为mapView1创建了setget方法?

谢谢 !

iphone objective-c

147
推荐指数
6
解决办法
8万
查看次数

目标中的内存管理-c

我在我的一个课程中有这个代码:

- (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?或者有更好的解决方案吗?

iphone memory-management objective-c

2
推荐指数
1
解决办法
313
查看次数

变量不是CFString错误

嘿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)

cocoa-touch memory-management core-data objective-c ios4

0
推荐指数
1
解决办法
5114
查看次数