小编Nos*_*tap的帖子

在Objective-C中,与.m文件相反,在头文件中定义内容(例如属性)有什么区别?

在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 *的地方有什么区别?

objective-c

5
推荐指数
1
解决办法
1828
查看次数

GDB没有显示堆栈的十六进制值

我试图让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)

我以前曾使用过此命令(据我所知,它是完全相同的命令),但是突然之间似乎不起作用。有任何想法吗?

c c++ hex gdb

5
推荐指数
1
解决办法
726
查看次数

在NavBar的标题中添加阴影

我从一位同事那里获得了一个程序,他正在使用.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)

有任何想法吗?

objective-c ios

5
推荐指数
1
解决办法
1772
查看次数

在Objective-C中使用Grand Central Dispatch可以保证什么行为?

我认为提出这个问题的最好方法是使用一些代码:

//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将按顺序打印出来?是否有可能跳过等待运行队列的其中一个线程?在现实中如何.实际上,这种情况会发生吗?如果我想要上面的行为(仍然使用线程),该怎么办?我怎么能做到这一点?

multithreading objective-c grand-central-dispatch ios

5
推荐指数
1
解决办法
176
查看次数

UIManagedDocuments什么时候关闭?

我正在使用这个博客: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曾经亲密,而我仍然有很强的指向呢?

iphone core-data objective-c ios uimanageddocument

5
推荐指数
1
解决办法
682
查看次数

将app_host设置为Capybara的内容

我的测试尝试访问网页并验证页面上是否存在某些元素.例如,它访问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身份验证的关系?

ruby kerberos capybara phantomjs

5
推荐指数
2
解决办法
6888
查看次数

javascript/jQuery 中 scroll 和 scrollTop 的区别

有什么区别:

window.scroll(0,200);
Run Code Online (Sandbox Code Playgroud)

$(window).scrollTop(200);
Run Code Online (Sandbox Code Playgroud)

除了其中一个使用 jQuery 而另一个不使用这一事实之外,有什么区别?一个是否为滚动动画而另一个没有?一个会比另一个工作得更快吗?

javascript jquery

5
推荐指数
1
解决办法
5500
查看次数

仅当对象不存在时,DynamoDBMapper才会保存

使用Java DynamoDBMapper,如何仅在对象尚不存在时保存对象(基于主键).如果确实存在,我想要抛出异常或失败,而不是更新现有条目.

java amazon-web-services amazon-dynamodb

5
推荐指数
1
解决办法
8790
查看次数

如何从SML中读取文件?

我正在尝试从SML文件中读取文本,但我无法让它工作.这就是我正在尝试的

fun read file =
let val inStream = TextIO.openIn file

in
        TextIO.StreamIO.input1 inStream
end
Run Code Online (Sandbox Code Playgroud)

实际的函数调用input1并不重要,我想要的只是能够从文件中读取.

functional-programming ml sml

4
推荐指数
1
解决办法
4160
查看次数

文件在xcode中列出两次

我正在使用Xcode中的iPhone项目,我正在使用github作为存储库.最近,在从存储库进行一系列推送和拉取之后,项目中的一些文件在Xcode中被列出两次.我的意思是在Xcode的左侧面板中显示项目中的所有文件,一些文件列出两次.

我做了一些实验,重复的文件似乎只是对同一个底层文件的引用.如果我更改ViewController.h了其他列出的ViewController.h文件中出现的相同更改.同样,如果我删除列出的出现,两个副本都会消失.

我尝试重新启动Xcode,删除派生数据并重新克隆

xcode github repository

4
推荐指数
1
解决办法
578
查看次数