0

xibファイルの所有者であるヘッダーファイルにこの条件付けコンパイルフラグを追加すると、xibファイルはIBOutletを読み取れず、欠落していると表示されます。そして警告を出します。

実行時には正常に動作します。誰かが同じ問題を経験しましたか?

/* MFMessageComposeViewControllerDelegate is available in iOS 4.0 and later. */



#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000

   @interface SendMoneyResponseVC : UITableViewController 
    <UINavigationControllerDelegate, MFMessageComposeViewControllerDelegate,    
    MFMailComposeViewControllerDelegate, UIActionSheetDelegate> 

   #else

   @interface SendMoneyResponseVC : UITableViewController 
    <UINavigationControllerDelegate, 
    MFMailComposeViewControllerDelegate, UIActionSheetDelegate> 

    #endif 

{
    IBOutlet UITableView *sendMoneyTableVC;

    IBOutlet UITableViewCell *refNumRemittanceCell;
    IBOutlet UILabel *refNumLabel, *refNumValueLabel, *refNumInfoLabel;

    IBOutlet UITableViewCell *refNumDomesticCell;
    IBOutlet UILabel *domesticInfoLabel, *feeAndReferenceLabel;

    IBOutlet UITableViewCell *shareRefNumCell;
    IBOutlet UIButton *shareRefNumButton;

    NSString *referenceNumber, *recipient, *currency, *mtoName;
    float amount, fee;
    int sendMoneyType;

    UIAlertView *smsAlertView;
}

@property (nonatomic, retain) UITableView *sendMoneyTableVC;

@property (nonatomic, retain) UITableViewCell *refNumRemittanceCell;
@property (nonatomic, retain) UILabel *refNumLabel, *refNumValueLabel, *refNumInfoLabel;

@property (nonatomic, retain) UITableViewCell *refNumDomesticCell;
@property (nonatomic, retain) UILabel *domesticInfoLabel, *feeAndReferenceLabel;

@property (nonatomic, retain) UITableViewCell *shareRefNumCell;
@property (nonatomic, retain) UIButton *shareRefNumButton;

@property (nonatomic, retain) NSString *referenceNumber, *recipient, *currency, *mtoName;
@property float amount, fee;
@property int sendMoneyType;

- (IBAction) didPressShareButton;

@end
4

2 に答える 2

1

コンパイラと同等の方法でコードを再構築しようとしましたが、Interface Builderを混乱させる可能性は低くなりましたか?このようなもの:

@interface SendMoneyResponseVC : UITableViewController 
    <UINavigationControllerDelegate, 
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
    MFMessageComposeViewControllerDelegate,    
#endif 
    MFMailComposeViewControllerDelegate, 
    UIActionSheetDelegate> 
{ ... }
@end

@interfaceこのように、1つ/@endペアのみが存在します。

于 2012-07-13T01:47:14.190 に答える
0

これを行う理由は何ですか?古いSDKでコンパイルしたい場合を除いて、これを取り除く必要があります。

Interface Builderはファイルを前処理しないため、2つの@interfacesと1つの@endが表示されます。
そして、InterfaceBuilderはこのようなものを解析できません。

于 2011-02-22T15:11:55.227 に答える