关于声明IBOutlets和实例变量,管理它们,使用正确的访问器并正确释放它们,我今天已经完成了各种关于最佳实践的研究.我几乎就在那里,但我有一些利基问题,我希望有人能够建议最好的做法.我将它们格式化为代码并对问题进行评论,以便更容易理解.我已经排除了一些我认为不相关的明显部分,可以安全地假设它们起作用(比如预处理器的东西,@ end,所需的实现方法等).
MyViewController.h
@class OtherViewController;
@interface MyViewController : UIViewController {
NSString *_myString;
BOOL _myBOOL;
}
// The first two properties aren't declared in the interface
// above as per best practices when compiling with LLVM 2.0
@property (nonatomic, retain) OtherViewController *otherViewController;
@property (nonatomic, retain) UIButton *myButton;
@property (nonatomic, copy) NSString *myString;
@property (readwrite) BOOL myBOOL;
Run Code Online (Sandbox Code Playgroud)
MyViewController.m
@implementation MyViewController
// Synthesizing IBOutlets on iOS will cause them to be
// retained when they are created by the nib
@synthesize otherViewController;
@synthesize …Run Code Online (Sandbox Code Playgroud) 我想在Google地理编码器API调用中添加一些额外的参数,因为我在循环中运行它,但我不知道如何将闭包参数附加到已经具有默认参数的匿名函数,该默认参数通过调用传入API.
例如:
for(var i = 0; i < 5; i++) {
geocoder.geocode({'address': address}, function(results, status) {
// Geocoder stuff here
});
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在传递的geocoder.geocode()匿名函数中使用i的值,但是如果我}(i));在第4行使用了一个闭包,例如它将替换第一个会破坏地理编码器的参数.
有没有办法可以使用闭包,或者将i的值传递给匿名函数?
有效的我想做的是:
geocoder.geocode({'address': address}, function(results, status, i) {
alert(i); // 0, 1, 2, 3, 4
}(i));
Run Code Online (Sandbox Code Playgroud)
但工作:-)
我试图找出是否有一种方法可以确定是否使用Dolby Pro Logic II数据对AAC编码的音轨进行了编码。有没有一种检查文件的方式,以便您可以查看此信息?例如,我已经在Handbrake中使用(截断为音频选项)对媒体文件进行了编码-E av_aac -B 320 --mixdown dpl2,这是显示的音频轨道mediainfo:
Audio #1
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 2h 5mn
Bit rate mode : Variable
Bit rate : 321 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 288 MiB (3%)
Title : Stereo / Stereo
Language : …Run Code Online (Sandbox Code Playgroud) 我们目前使用 G Suite 作为我们 AWS SAML 访问的 IDP,它在少数账户中扮演一个角色,让我们的 G Suite 用户访问某些 AWS 资源。每个帐户都有一个类似命名的角色,G Suite 用户可以担任该角色以授予他们对该帐户中某些资源的访问权限,这些资源都按预期工作。
我正在研究是否可以配置该假定角色,以便为某些用户提供对某些资源的更细粒度的访问权限,而不必为 G Suite 本身内的不同用户分配完全不同的角色。
例如,如果账户中承担的角色名为“assumed_gsuite_ro”并且不授予对 IAM 的访问权限,您会在 IAM 控制台中收到如下错误:
User: arn:aws:sts::0012345678900:assumed-role/assumed_gsuite_ro/matt@domain.com is not authorized to perform: iam:GetAccountSummary on resource: *
Run Code Online (Sandbox Code Playgroud)
所以我想添加一些类似的东西到posed_gsuite_ro 角色策略中,让我的联合用户在 IAM 中访问它:
...
{
"Sid": "IAMTest",
"Effect": "Allow",
"Action": [
"iam:GetAccountSummary",
"iam:ListAccountAliases"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": "arn:aws:sts::0012345678900:assumed-role/assumed_gsuite_ro/matt@domain.com"
}
}
}
...
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为 SourceArn 显然不匹配。我可以使用的条件值是否允许我定位 AWS 似乎知道的特定联合用户?我在想像 aws:userid 或 aws:username 这样的东西可能会起作用,但我不确定在这种情况下它们的值是什么。
我想根据ENV var的值在全局包级别中在Go中有条件地解析和设置变量,这样我就不必每次都在实用函数中检查它(因为变量会被声明一次在运行时).例如,我想要完成的是(Go伪代码):
import (
"fmt"
"os"
"strconv"
)
// This works to read the value of MYVAR (=true/false)
var myvar string = os.Getenv("MYVAR")
// Apparently this is too much for Go
var myvarbool, _ = strconv.ParseBool(myvar)
// Utility function to check for value
func mycheck() {
if myvarbool {
fmt.Print("MYVAR is true")
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个库包,因此没有main()函数来进行这种设置,但是我希望能够在库中的其他函数中使用mycheck(),并且不希望必须读取并在每次调用mycheck()时解析MYVAR.
aac ×1
amazon-iam ×1
audio ×1
closures ×1
conditional ×1
dolby ×1
go ×1
handbrake ×1
ios ×1
javascript ×1
memory ×1
objective-c ×1
properties ×1
roles ×1
saml ×1
variables ×1