/ / get “Nedefinované symboly pre architektúru i386:” sa snažia získať konštanty - ios

získať "Nedefinované symboly pre architektúru i386:" snažiť sa získať konštanty - ios

Viem, že existuje veľa podobných otázok, hoci som nenašiel môj prípad:

Mám:

#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

a ja, keď sa snažím stavať svoj projekt - dostanem:

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)

VYSKÚŠAJTE PRÍSTUP:

#import "BSConstants.h"

... DB_COLUMN_NAME

odpovede:

9 pre odpoveď č. 1

Túto chybu som našiel - v súboroch .h a .m sa vyskytujú konštantné názvy.


1 pre odpoveď č. 2

Najskôr to skúste zmeniť

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

to isté s

NSString* const DB_COLUMN_NAME              = @"name";

na

const NSString * DB_COLUMN_NAME = @ "name";

Pozrite sa, ako k nim pristupujete.