2011-07-26 33 views
2

我很驚訝爲什麼會彈出此警告。我在其他控制器上使用相同的過程,它可以很好地工作。警告:在沒有投射的情況下使指針變爲整數

ConditionTableViewController.m:57:警告:傳遞 'initWithCondition:' 的參數1時將指針整數,未作鑄造

用下面的代碼

- (void)managedObjectSelected:(NSManagedObject *)managedObject 
{ 
// Load View 
Condition *con = (Condition *)managedObject; 
ConditionDetailViewController *detail = [[ConditionDetailViewController alloc] initWithCondition:con]; 

detail.title = [[managedObject valueForKey:@"cave"] valueForKey:@"title"]; 

self.navigationItem.backBarButtonItem = 
[[[UIBarButtonItem alloc] initWithTitle:@"Back" 
            style: UIBarButtonItemStyleBordered 
           target:nil 
           action:nil] autorelease]; 

[self.navigationController pushViewController:detail animated:YES]; 
[detail release]; 
} 

在ConditionDetailViewController.h

- (id)initWithCondition:(Condition *)aCondition; 

這裏的控制檯ou 「CON」

2011-07-26 11:03:08.485 CaveConditions[10631:f203] <NSManagedObject: 0xe6628e0> (entity: Condition; id: 0xe6608b0 <x-coredata://368AFBD3-2C66-4ED7-977D-AB8EED8BB577/Condition/p149> ; data: { 
    cave = "0x67486e0 <x-coredata://368AFBD3-2C66-4ED7-977D-AB8EED8BB577/Cave/p7>"; 
    ccId = 678; 
    comment = ""; 
    diveDate = 1286830059; 
    flow = "0xe668270 <x-coredata://368AFBD3-2C66-4ED7-977D-AB8EED8BB577/Flow/p1>"; 
    imageURL = "orbe_doof.jpg"; 
    insertDate = nil; 
    ip = "xxx.xxx.xxx.xxx"; 
    line = "0xe668280 <x-coredata://368AFBD3-2C66-4ED7-977D-AB8EED8BB577/Line/p1>"; 
    percolation = "0xe668290 <x-coredata://368AFBD3-2C66-4ED7-977D-AB8EED8BB577/Percolation/p5>"; 
    sediment = "0xe6682a0 <x-coredata://368AFBD3-2C66-4ED7-977D-AB8EED8BB577/Sediment/p2>"; 
    temperature = 13; 
    userMail = "[email protected]"; 
    username = "Hans K..."; 
    visibility = "0xe6682b0 <x-coredata://368AFBD3-2C66-4ED7-977D-AB8EED8BB577/Visibility/p7>"; 
}) 

包括按要求

ConditionTableViewController.h

的tput的
#import "CellTableViewController.h" 
#import "Cave.h" 

ConditionTableViewController.m(凡managedObjectSelected方法被調用)

#import "ConditionTableViewController.h" 
#import "ConditionDetailViewController.h" 

ConditionDetailViewController.h

#import <UIKit/UIKit.h> 
#import "Condition.h" 
#import <QuartzCore/QuartzCore.h> 

ConditionDetailViewController.m

#import "ConditionDetailViewController.h" 
#import "DataProcessor.h" 
#import "PhotoViewController.h" 
+0

你的代碼是否也有'#import「ConditionDetailViewController.h」'?你是否也會收到類似'blabla可能無法響應消息的警告「initWithCondition:''的警告? – DarkDust

+0

它是進口的。這是我得到的唯一警告。有趣的是,即使在模擬器上出現該警告,它也能正常工作。但不是在iPhone – Chris

+0

你嘗試執行一個乾淨和構建? –

回答

0

initWithCondition:是在基礎框架,它接受一個整數NSConditionLock類的方法。我認爲Xcode不知何故混淆了來自兩個類的符號名稱initWithCondition:,並且使用了錯誤的版本。如果你的代碼是正確的,包括在每個文件中導入正確的頭文件,那麼它可能是錯誤的索引或預編譯頭文件。嘗試從「組織者」窗口的「項目」部分刪除項目的派生數據,然後重新構建項目。

相關問題