2013-12-11 30 views
3

我在給定的下一行不斷收到此錯誤。但我無法理解如何解決它。請指導我有什麼問題。我知道這是與ARC的轉換指南,但我無法理解如何解決它。 return [self isUnique:ioValue forKey:@「serverId」];將間接指針隱式轉換爲指向'nsstring *'的objective-c指針不允許使用圓弧

- (BOOL)validateServerId:(id *)ioValue error:(NSError **)outError { 
// DLog(@"%@",__strong ioValue); 
// NSString *__strong a=ioValue; 
return [self isUnique:ioValue forKey:@"serverId"]; 
} 

- (BOOL)isUnique:(NSString *)value forKey:(NSString *)key{ 

if([key isEqualToString:@"serverId"]) 
{ 
    NSFetchRequest * fetch = [[NSFetchRequest alloc] init]; 
    [fetch setEntity:[NSEntityDescription entityForName:[self.entity name] 
           inManagedObjectContext:self.managedObjectContext]]; 

    NSPredicate *predicate = [NSPredicate 
           predicateWithFormat:@"serverId = %@",value]; 

    fetch.predicate = predicate; 

    NSError *error = nil; 
    NSUInteger count = [self.managedObjectContext 
         countForFetchRequest:fetch error:&error]; 

    if (count > 1) { 
     // Produce error message... 

     // Failed validation: 
     return NO; 
    } 


} 


return YES; 
} 

回答

1

刪除*這裏(id *)ioValue,或是更換(NSString *)ioValue

+1

當我根據你的方法改變它然後崩潰並給Exe_bad_access錯誤 –

1

但是ID類型用於通用對象(當你不能確定它的類型)從ID替換參數類型的NSString

**** From **** 
- (BOOL)validateServerId:(id *)ioValue error:(NSError **)outError; 

**** To **** 
- (BOOL)validateServerId:(NSString *)ioValue error:(NSError **)outError; 

希望這可以幫助!

+1

當我根據你的方法改變它然後崩潰並給Exe_bad_access錯誤 –

0

的解決方案是添加*值之前,因爲那裏傳來的地址,我加入該地址

回報[自isUnique設置*現在我傳遞值傳遞地址:* ioValue forKey:@「SERVERID」 ]。

相關問題