我有MyClassA一个类型的属性MyClassB
//
// MyClassA.h
//
@interface MyClassA : NSObject
@property (strong, nonatomic, readonly) MyClassB *myClassB;
@end
Run Code Online (Sandbox Code Playgroud)
MyClassB有房产myString.
//
// MyClassB.h
//
@interface MyClassB : NSObject
@property (copy, nonatomic, readonly) NSString *myString;
@end
Run Code Online (Sandbox Code Playgroud)
我有MyClassC需要访问myString它的实现.
我是不是该 -
一)正向声明MyClassB中MyClassA.h,并#import "MyClassB.h"在MyClassC.m
要么
b)#import MyClassB.hinMyClassA.h
我认为这是一个genstrings错误或“功能”,但想看看是否有人遇到过这个问题或知道答案。我正计划为此打开一个雷达。
我们使用我们自己的本地化宏。让我们称之为CustomLocalizedString。在我们的代码库中,它非常大,我们使用了很多 3rd Party 库。对于绝大多数 3rd Party 库,如果它们碰巧拥有任何本地化字符串,我们不想要它们。当我们确实想使用他们的本地化字符串时,我们修改 3rd Party lib 以使用我们的CustomLocalizedString宏。由于我们不关心的字符串正在使用NSLocalizedString*宏,因此我们认为这不是问题。
本地化基本上开始标记一些有问题的字符串。经过一番研究,我意识到它来自 3rd Party lib。然后我进一步意识到我们还包括了其他不应该存在的字符串(我们有大量的字符串)。这些是使用NSLocalizedString*marco 的字符串。
所以我们的调用genstrings是这样的:
genstrings -o output -s CustomLocalizedString
我实际上使用xargs和find创建文件参数,因此为简洁起见,我省略了那部分。根据输出,它看起来像是genstrings将NSLocalizedString和CustomLocalizedString字符串都放入 Localizable.strings 文件中。
为了进一步验证我创建了一个文件:
NSLocalizedString(@"Normal localized string macro", nil);
CustomLocalizedString(@"Custom localized string macro", nil);
Run Code Online (Sandbox Code Playgroud)
并跑了:
genstrings -o out -s CustomLocalizedString localized_string.txt
Run Code Online (Sandbox Code Playgroud)
输出是:
/* No comment provided by engineer. */
"Custom localized string macro" = "Custom …Run Code Online (Sandbox Code Playgroud) 我编写了一个 Python 脚本来将映像从 AWS ECR 提取到 Ubuntu 实例。在此实例中,我运行 docker 命令,因为sudoDocker 未设置为非 root 用户。
sudo我在调用脚本时确实使用。我发现如果我当前先登录 AWS ECR 然后运行脚本,它会按预期工作。但是,如果我没有登录,并且身份验证令牌已过期,则似乎docker login可以工作,但是当我尝试拉取时,我收到一条消息,指示“存储库不存在或我需要'docker登录'”。
检查日志,它验证这一点
2 月 15 日 06:00:38 ubuntu-xenial dockerd[1388]: time="2019-02-15T06:00:38.832827449Z" level=error msg="错误后不继续拉取:被拒绝:您的授权令牌已过期。请运行“aws ecr get-login --no-include-email”来获取新邮件。”
def log_into_aws_ecr(docker_client, region):
# To do, set region
ecr_client = boto3.client('ecr', region_name=region)
# Get all repos
response = ecr_client.describe_repositories()
repo_names = []
repositories = response.get('repositories', [])
for repo in repositories:
name = repo.get('repositoryName', '')
if len(name):
repo_names.append(name)
token = ecr_client.get_authorization_token()
username, password = …Run Code Online (Sandbox Code Playgroud) docker ×1
genstrings ×1
import ×1
include ×1
localization ×1
objective-c ×1
python ×1
xcode ×1