3

同様の質問がたくさんあることは知っていますが、私の場合は見つかりませんでした。

私は持っています:

#import <Foundation/Foundation.h>

@interface BSConstants : NSObject

extern NSString* const DB_COLUMN_NAME;
extern NSString* const DB_COLUMN_PRICE;
extern NSString* const DB_COLUMN_DESCRIPTION;
extern NSString* const DB_COLUMN_ICON;     
extern NSString* const DB_COLUMN_IMAGE; 

@end

#import "BSConstants.h"

@implementation BSConstants

NSString* const DB_COLUMN_NAME              = @"name";
NSString* const DB_COLUMN_PRICE             = @"price";
NSString* const DB_COLUMN_DESCRIPTION       = @"description";
NSString* const DB_COLUMN_ICON              = @"icon";
NSString* const DB_COLUMN_IMAGE             = @"image";

@end

プロジェクトをビルドしようとすると、次のようになります。

Undefined symbols for architecture i386:
  "_CONST_SHOPPING_CART_PURCHASE_MAX_SIZE", referenced from:
      -[BSShoppingCartViewController onBuyButtonPressed:] in BSShoppingCartViewController.o
  "_NAME_CREATED_FILE", referenced from:
      -[BSImageSaver saveImageAsPng:] in BSImageSaver.o
  "_NAME_DOWNLOADS_FOLDER", referenced from:
      -[BSImageSaver saveImageAsPng:] in BSImageSaver.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

アクセスしてみてください:

#import "BSConstants.h"

 ... DB_COLUMN_NAME
4

2 に答える 2

1

まずはこれを変えてみる

extern NSString* const DB_COLUMN_NAME;extern const NSString* DB_COLUMN_NAME;

と同じ

NSString* const DB_COLUMN_NAME              = @"name";

const NSString* DB_COLUMN_NAME = @"名前";

これらへのアクセス方法も参照してください。

于 2012-10-09T21:52:46.053 に答える