Как может я переменные доступа от другого класса?

В Info.plist пропущенные / неверные ключи / строки могут повлиять на первые две проблемы; если ключи дублированы, отсутствуют или установлены неправильно, это, безусловно, может вызвать проблемы с функциональностью.

  1. Отсутствует

    • NSPrincipalClass
    • CFBundleInfoDictionaryVersion
    • CFBundleSupportedPlatforms [1162] [ 1163] CFBundlePackageType
    • CFBundleExecutable (это двоичный файл внутри папки MacOS)
    • CFBundleLocalizations (необязательно)
    • DTXcode (необязательно)
    • DTPlatform (опционально)
    • DTSDK (опционально)
    • DTCompiler (опционально)
  2. ] Неверно

    • CFBundleIdentifier (должно быть в обратном формате DNS)
    • CFBundleVersion (дубликат / неверно)
    • CFBundleSignature (неверно )

ПРИМЕЧАНИЯ : имя приложения MyApp.app не обязательно должно совпадать с исполняемым файлом в папке MacOS, если Вы добавили и установили ключ CFBundleExecutable. Значок приложения может быть любым именем, которое вы хотите, ключ к его работе - включение дополнительных CoreFoundation клавиш, показанных выше, установленных правильно.

После того, как вы отсортировали все недостающие / неправильные ключи, вы должны получить что-то похожее на:





    CFBundleDevelopmentRegion
    en
    CFBundleExecutable
    MyApp
    CFBundleIconFile
    MyIcon
    CFBundleIdentifier
    com.company.MyApp
    CFBundleInfoDictionaryVersion
    6.0
    CFBundleName
    MyApp
    CFBundlePackageType
    APPL
    CFBundleShortVersionString
    1.0
    CFBundleSupportedPlatforms
    
        MacOSX
    
    CFBundleVersion
    1
    DTCompiler
    com.apple.compilers.llvm.clang.1_0
    DTPlatformBuild
    10B61
    DTPlatformVersion
    GM
    DTSDKBuild
    18B71
    DTSDKName
    macosx10.14
    DTXcode
    1010
    DTXcodeBuild
    10B61
    LSMinimumSystemVersion
    10.13
    NSHumanReadableCopyright
    Copyright © 2019 MyApp. All rights reserved.
    NSMainNibFile
    MainMenu
    NSPrincipalClass
    NSApplication


* Выше Info.plist должен работать с вашим приложением, так как значения соответствуют тому, что вы показали в своем вопросе.


Относительно i18n тестирования - Internationalization and Localization Guide секции Testing Your Internationalized App и Managing Strings Files Yourself должны быть полезными. В Руководстве содержится огромное количество информации; Один подход подходит для всех подходов к тестированию, как правило, не подходит, поэтому вы захотите найти то, что лучше всего подходит для вас.

Справочник по ключам списка свойств информации
Об интернационализации и локализации

blockquote>

9
задан Rob 18 March 2009 в 15:26
поделиться

2 ответа

Можно или обнародовать переменную или превратить ее в свойство. Например, чтобы обнародовать его:

@interface Class1
{
@public
    int var;
}
// methods...
@end

// Inside a Class2 method:
Class1 *obj = ...;
obj->var = 3;

Сделать это свойством:

@interface Class1
{
    int var;  // @protected by default
}
@property (readwrite, nonatomic) int var;
// methods...
@end

@implementation Class1
@synthesize var;
...
@end

// Inside a Class2 method:
Class1 *obj = ...;
obj.var = 3;  // implicitly calls [obj setVar:3]
int x = obj.var;  // implicitly calls x = [obj var];
15
ответ дан 4 December 2019 в 08:53
поделиться

Вы могли выставить переменную в class2 как свойство. Если class1 имеет ссылку на class2, class1 может затем видеть переменную. Честно, тем не менее, это кажется, что Вы - новичок и к Objective C и к объектно-ориентированному программированию. Я рекомендую читать больше на обоих.

Вот место для запуска для объектно-ориентированного программирования с Objective C.

5
ответ дан 4 December 2019 в 08:53
поделиться