在Objective-C中,与.m文件相反,在头文件中定义内容(例如属性或方法)有什么区别?我听说它与将其公开或私有有关,但我不确定细节。如果是这样,这是否与Java中的公共方法和私有方法相同?
我精通Java,因此可以将Objective-C与Java关联的任何方式都会有所帮助。
谢谢
编辑:澄清一下,假设我有一个名为“ CalculatorBrain”的类(如果这是适当的术语),以下内容之间有什么区别(请注意NSMutableArray * operandStack:
在.m文件中:
@interface CalculatorBrain()
@property (nonatomic, strong) NSMutableArray *operandStack;
@end
Run Code Online (Sandbox Code Playgroud)
与.h文件中的:
@interface CalculatorBrain : NSObject
@property (nonatomic, strong) NSMutableArray *operandStack;
@end
Run Code Online (Sandbox Code Playgroud)
在定义NSMutableArray *的地方有什么区别?
我试图让GDB显示堆栈的十六进制值,所以我使用了command x /48b $esp
,这是我在Internet上看到的命令,该命令应显示堆栈中48个字节的十六进制值,起始于指向的位置。堆栈指针。但是,当我执行此命令时,我会得到整数值(有些是负数)。下面是一个示例:
(gdb) x /48b $esp
0xbffff200: 40 -14 -1 -65 24 -114 4 8
0xbffff208: 123 0 0 0 0 0 0 0
0xbffff210: 16 0 0 0 -3 -112 17 0
0xbffff218: -18 64 27 0 -1 -1 -1 -1
0xbffff220: 88 40 19 0 45 -9 17 0
0xbffff228: 38 38 -64 -14 -1 -65 -64 -14
Run Code Online (Sandbox Code Playgroud)
我以前曾使用过此命令(据我所知,它是完全相同的命令),但是突然之间似乎不起作用。有任何想法吗?
我从一位同事那里获得了一个程序,他正在使用.xib文件设置他的视图。(作为一名硬核编码员,我自己从未使用过IB ...)因此,他正在设置ViewControler,并且拥有一个NavBar(在.xib文件中找不到!)。
我想为标题添加阴影。
如果我正在制作NavBar,则相对代码如下所示:
textViewTitle.layer.shadowOpacity = 2.0;
textViewTitle.layer.shadowRadius = 3.0;
textViewTitle.layer.shadowOffset = CGSizeMake(2.0, 3.0);
Run Code Online (Sandbox Code Playgroud)
而且效果很好。到处挖掘我发现现在需要使用此功能:
NSDictionary *navbarTtlAts = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], UITextAttributeTextColor,
[UIColor blackColor], UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(2.0, 3.0)], UITextAttributeTextShadowOffset,
nil];
[self.navigationController.navigationBar setTitleTextAttributes:navbarTtlAts];
Run Code Online (Sandbox Code Playgroud)
尽管这可行,但我找不到如何添加shadowOpacity和shadowRadius的东西。
我发现我可以在NSDictionary中添加以下内容,但是它不起作用...
[NSNumber numberWithFloat: 2.0], @"shadowOpacity",
[NSNumber numberWithFloat: 3.0], @"shadowRadius",
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我认为提出这个问题的最好方法是使用一些代码:
//Main method
for(int i = 0; i < 10; i++)
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self foo:i];
});
}
- (void) foo: (int) i
{
@synchronized(self)
{
NSLog(@"%d",i);
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,是否保证数字0-9将按顺序打印出来?是否有可能跳过等待运行队列的其中一个线程?在现实中如何.实际上,这种情况会发生吗?如果我想要上面的行为(仍然使用线程),该怎么办?我怎么能做到这一点?
我正在使用这个博客:http://www.adevelopingstory.com/blog/2012/03/core-data-with-a-single-shared-uimanageddocument.html为单身人士创建一个单身UIManagedDocument
人士.这是相关的代码BetterDatabase
//In BetterDatabase
typedef void (^OnDocumentReady) (UIManagedDocument *document);
- (void)performWithDocument:(OnDocumentReady)onDocumentReady
{
void (^OnDocumentDidLoad)(BOOL) = ^(BOOL success) {
onDocumentReady(self.document);
};
if (![[NSFileManager defaultManager] fileExistsAtPath:[self.document.fileURL path]]) {
[self.document saveToURL:self.document.fileURL
forSaveOperation:UIDocumentSaveForCreating
completionHandler:OnDocumentDidLoad];
} else if (self.document.documentState == UIDocumentStateClosed) {
[self.document openWithCompletionHandler:OnDocumentDidLoad];
} else if (self.document.documentState == UIDocumentStateNormal) {
OnDocumentDidLoad(YES);
}
}
//In other class
[[BetterDatabase sharedDocumentHandler] performWithDocument:^(UIManagedDocument * document) {
//Do stuff 1
//Do stuff 2
}];
Run Code Online (Sandbox Code Playgroud)
我的问题: 什么时候可以自动关闭UIManagedDocument?也就是说,文件是否可以在第1行和第2行之间关闭(通过OS/SDK)?如果用户最小化iPhone应用程序然后再次打开它会怎样?会UIManagedDocument
被关闭吗?
另一种方法句话是这样的:将一个UIManagedDocument
曾经亲密,而我仍然有很强的指向呢?
我的测试尝试访问网页并验证页面上是否存在某些元素.例如,它访问http://foo.com/homepage.html
并检查徽标图像,然后访问http://bar.com/store/blah.html
并检查页面上是否显示某些文本.我的目标是访问Kerberos身份验证的网页.
我发现Kerberos代码如下:
主文件
uri = URI.parse(Capybara.app_host)
kerberos = Kerberos.new(uri.host)
@kerberos_token = kerberos.encoded_token
Run Code Online (Sandbox Code Playgroud)
kerberos.rb文件
class Kerberos
def initialize(host)
@host = host
@credentials = AuthGss::Negotiate.new("HTTP@#{@host}")
@credentials.cache = ENV['KRB5CCNAME'] if ENV['KRB5CCNAME']
@token = @credentials.step("")
end
def encoded_token
Base64.encode64(@token).gsub(/\n/,"")
end
end
Run Code Online (Sandbox Code Playgroud)
它利用Capybara.app_host
价值.我无法弄清楚要设置的Capybara.app_host
值.我无法弄清楚它的作用.我有Capybara.run_server = false
.有人可以帮助我了解如何使用Capybara.app_host
以及这与Kerberos身份验证的关系?
有什么区别:
window.scroll(0,200);
Run Code Online (Sandbox Code Playgroud)
和
$(window).scrollTop(200);
Run Code Online (Sandbox Code Playgroud)
除了其中一个使用 jQuery 而另一个不使用这一事实之外,有什么区别?一个是否为滚动动画而另一个没有?一个会比另一个工作得更快吗?
使用Java DynamoDBMapper,如何仅在对象尚不存在时保存对象(基于主键).如果确实存在,我想要抛出异常或失败,而不是更新现有条目.
我正在尝试从SML文件中读取文本,但我无法让它工作.这就是我正在尝试的
fun read file =
let val inStream = TextIO.openIn file
in
TextIO.StreamIO.input1 inStream
end
Run Code Online (Sandbox Code Playgroud)
实际的函数调用input1
并不重要,我想要的只是能够从文件中读取.
我正在使用Xcode中的iPhone项目,我正在使用github作为存储库.最近,在从存储库进行一系列推送和拉取之后,项目中的一些文件在Xcode中被列出两次.我的意思是在Xcode的左侧面板中显示项目中的所有文件,一些文件列出两次.
我做了一些实验,重复的文件似乎只是对同一个底层文件的引用.如果我更改ViewController.h
了其他列出的ViewController.h
文件中出现的相同更改.同样,如果我删除列出的出现,两个副本都会消失.
我尝试重新启动Xcode,删除派生数据并重新克隆