我有一个rails应用程序,它的行为取决于它访问的域名(例如www.myapp.com将以不同方式调用user.myapp.com).在生产中使用这一切都很好但我的测试代码总是看到主机名"www.example.com".
是否有一种干净的方法让测试指定它假装访问的主机名?
我正在为OSX开发一个项目,用户可以从中选择我需要生成PDF文档的文档集合(来自任何应用程序).标准的"Macintosh打印"对话框有一个PDF按钮,其中包含许多与PDF相关的命令,包括"另存为PDF ...".但是,我需要生成PDF文件而无需用户交互.理想情况下,我希望这适用于任何类型的文档.
这是我到目前为止探讨的选项:
我希望有一些方法可以与活动应用程序进行交互,就像用户执行以下步骤一样:
如果这是最好的方法(是吗?)那么真正的问题是:如何将UI事件发送到外部应用程序(击键,鼠标事件,菜单选择)?
更新:只是澄清一点:我需要转换为PDF的文档是由其他应用程序创建的文档.例如,用户可能会选择Word文档或Numbers电子表格或OmniGraffle绘图或网页.常见的分母是这些文档中的每一个都有一个相关的应用程序,该应用程序知道如何打印它(OSX知道如何将打印输出呈现为PDF文件).
因此,Cocoa Dev Central的样本没有帮助,因为它们是关于从我的应用程序生成PDF .
我开始玩Carrierwave,作为Paperclip的替代品.
我可以从文档中看到要使用S3我应该在初始化程序中配置Fog:
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS', # required
:aws_access_key_id => 'xxx', # required
:aws_secret_access_key => 'yyy', # required
:region => 'eu-west-1' # optional, defaults to 'us-east-1'
}
end
Run Code Online (Sandbox Code Playgroud)
但是,如何为不同的环境设置不同的存储桶?使用回形针,我将在yml文件中为开发/生产/等指定不同的凭据和/或存储桶.使用carrierwave的最佳方法是什么?
ruby-on-rails amazon-s3 paperclip ruby-on-rails-3 carrierwave
我编写了一个库,根据@dynamic
您在'preferences'类中声明的属性自动生成NSUserDefaults访问器(请参阅PAPreferences).您在.m文件中写入属性,如下所示:
@property (nonatomic, assign) BOOL hasSeenIntro;
Run Code Online (Sandbox Code Playgroud)
然后将其添加到.h文件中:
@dynamic hasSeenIntro;
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果用户意外忘记放入@dynamic
行,则编译器将自动生成等效@synthesize
行.没有警告,但当然我的代码不会被调用.
我想知道是否有一种方法可以为这个类禁用自动属性合成.
更新:
感谢Nikolai的回答,我记得有可能将LLVM警告提升为错误,并将该声明包装起来以实现我所寻找的效果(如果用户忘记指定@dynamic
行,则会引发错误):
// Ensure we get an error if we forget to add @dynamic for each property
#pragma clang diagnostic push
#pragma clang diagnostic error "-Wobjc-missing-property-synthesis"
@interface Preferences : PAPreferences
@property (nonatomic, assign) BOOL hasSeenIntro;
@property (nonatomic, assign) NSInteger pressCount;
@end
#pragma clang diagnostic pop
Run Code Online (Sandbox Code Playgroud) 我有一个大问题......我打算编写一个处理用户地址簿及其地址的应用程序.一切都很好 - 除了我无法确定addesse的类型是"工作","家"还是"其他"的事实.
有人知道如何获得家庭,工作和其他标签吗?
提前致谢
鲍里斯
这是我目前正在使用的功能:
+ (void)testing {
//Get the addressbook
ABAddressBookRef _addressBookRef = ABAddressBookCreate ();
//Fetch all contacts
NSArray* allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(_addressBookRef);
//Walk the contacts
for (id record in allPeople) {
//Get the contact´s id
NSInteger recordId = ABRecordGetRecordID((ABRecordRef)record);
//Get the contact´s name and company
NSString* recordName = (NSString *)ABRecordCopyCompositeName((ABRecordRef)record);
NSString* recordCompany = (NSString *)ABRecordCopyValue((ABRecordRef)record, kABPersonOrganizationProperty);
//Get the contact´s addresses
CFTypeRef adressesReference = ABRecordCopyValue((ABRecordRef)record, kABPersonAddressProperty);
NSArray *adressesArray = (NSArray *)ABMultiValueCopyArrayOfAllValues(adressesReference);
CFRelease(adressesReference);
NSLog(@"ID: %d", recordId);
NSLog(@"Name: %@", …
Run Code Online (Sandbox Code Playgroud) 我在视图中有一个UITextField(在iPhone上),但输入文本看起来很小.我没有在Interface Builder中看到设置大小的选项.
有没有办法以声明方式设置它还是我必须求助于代码?
objective-c ×3
macos ×2
amazon-s3 ×1
applescript ×1
automator ×1
carrierwave ×1
cocoa-touch ×1
ios ×1
iphone ×1
llvm ×1
paperclip ×1
pdf ×1
rspec ×1
xcode ×1