小编Coo*_*coa的帖子

你什么时候使用git rebase而不是git merge?

什么时候建议使用git rebasevs. git merge

成功改造后我还需要合并吗?

git version-control git-merge git-rebase

1461
推荐指数
15
解决办法
36万
查看次数

@class vs. #import

根据我的理解,如果ClassA需要包含ClassB头,则应该使用前向声明,而ClassB需要包含ClassA头以避免任何循环包含.我也明白a #import是一个简单的,ifndef所以包含只发生一次.

我的询问是这样的:什么时候使用#import,什么时候使用@class?有时如果我使用@class声明,我会看到一个常见的编译器警告,如下所示:

warning: receiver 'FooController' is a forward class and corresponding @interface may not exist.

真的很想理解这一点,而不是仅仅删除@class前向声明并抛出一个#import静音编译器给我的警告.

cocoa cocoa-touch objective-c

707
推荐指数
10
解决办法
17万
查看次数

如何处理包含属性的Objective-C协议?

我已经看到Objective-C协议的使用以如下方式使用:

@protocol MyProtocol <NSObject>

@required

@property (readonly) NSString *title;

@optional

- (void) someMethod;

@end
Run Code Online (Sandbox Code Playgroud)

我已经看到使用这种格式而不是编写子类扩展的具体超类.问题是,如果您遵守此协议,您是否需要自己合成属性?如果您正在扩展超类,答案显然是否定的,您不需要.但是,如何处理协议需要符合的属性?

据我了解,您仍然需要在符合需要这些属性的协议的对象的头文件中声明实例变量.在这种情况下,我们可以假设它们只是一个指导原则吗?对于所需方法,情况并非如此.编译器会拍你的手腕以排除协议列出的必需方法.虽然属性背后的故事是什么?

这是一个生成编译错误的示例(注意:我已经修改了不反映手头问题的代码):

MyProtocol.h

@protocol MyProtocol <NSObject>

@required
@property (nonatomic, retain) id anObject;

@optional
Run Code Online (Sandbox Code Playgroud)

TestProtocolsViewController.h

- (void)iDoCoolStuff;

@end

#import <MyProtocol.h>

@interface TestProtocolsViewController : UIViewController <MyProtocol> {

}

@end
Run Code Online (Sandbox Code Playgroud)

TestProtocolsViewController.m

#import "TestProtocolsViewController.h"

@implementation TestProtocolsViewController
@synthesize anObject; // anObject doesn't exist, even though we conform to MyProtocol.

- (void)dealloc {
    [anObject release]; //anObject doesn't exist, even though we conform to MyProtocol.
    [super dealloc];
}

@end     
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c

130
推荐指数
4
解决办法
7万
查看次数

如何将本地Git分支复制到远程仓库

到目前为止,我已采取以下步骤:

  1. 克隆了一个远程Git仓库
  2. 将主分支分支到实验室
  3. 在实验分支中编辑/测试/提交的代码

现在,我还没准备好将实验合并到主人.但是我想将它推回到远程仓库,因为那是我与几位同事共享的存储库.我想让他们看看我在实验部门做了些什么.我通常只是通过SSH访问远程仓库.

如何在不影响远程仓库主分支的情况下在远程仓库上共享本地分支?

git version-control distributed

127
推荐指数
2
解决办法
8万
查看次数

以编程方式检索iPhone上的内存使用情况

我正在尝试以编程方式随时检索我的iPhone应用程序正在使用的内存量.是的我知道ObjectAlloc/Leaks.我对这些不感兴趣,只知道是否可以编写一些代码并获取正在使用的字节数并通过NSLog报告.

谢谢.

memory iphone cocoa-touch objective-c ios

98
推荐指数
5
解决办法
5万
查看次数

管理多个异步NSURLConnection连接

我班上有很多重复的代码,如下所示:

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
                                                              delegate:self];
Run Code Online (Sandbox Code Playgroud)

异步请求的问题是当你有各种请求消失,并且你有一个委托指定将它们全部视为一个实体时,许多分支和丑陋的代码开始形成:

我们回来了什么样的数据?如果它包含这个,那就做,否则做其他.我认为能够标记这些异步请求会很有用,就像你能够使用ID标记视图一样.

我很好奇什么策略对于管理处理多个异步请求的类最有效.

iphone cocoa cocoa-touch objective-c nsurlconnection

88
推荐指数
5
解决办法
4万
查看次数

如何根据对象字符串属性在Xcode中设置条件断点?

我希望能够在调试器到达特定的字符串匹配时使其中断.举个例子,我可能会有这样的事情:

Foo myObj = [self gimmeObj];
Run Code Online (Sandbox Code Playgroud)

myObj可能有一个叫做的属性name.我希望调试器在分配时停止

[myObj.name isEqualToString:@"Bar"];
Run Code Online (Sandbox Code Playgroud)

如何在Xcode中设置条件断点来做到这一点?

debugging xcode breakpoints objective-c

86
推荐指数
3
解决办法
5万
查看次数

Git:检出先前提交的文件并将其修改为HEAD

我最近向我的分支机构的HEAD提交了一个文件,其中有错误.我需要做以下事情:

  • 从HEAD之前的一次提交中获取该文件

  • 将该文件提交回HEAD

最好的方法是什么?

git version-control

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

如何实现全局iPhone异常处理?

我的iPhone应用程序中有一次崩溃,它会抛出NSException.崩溃报告在错误的位置和导致错误的位置上完全不明确.有没有一种聪明的方法让我在某处设置顶级异常处理程序以查看导致它的原因?我自己无法复制问题,但我的一些beta用户当然可以.

什么是处理这种性质问题的聪明方法?

iphone debugging cocoa-touch exception-handling objective-c

59
推荐指数
3
解决办法
4万
查看次数

iPhone正确使用Application Delegate

我希望能够通过我的应用程序中的任何位置引用某些状态/对象.例如,用户登录到他们的应用程序,我需要调用Web服务并检索用户信息.然后,我希望能够从应用程序的任何位置访问此信息,如下所示:

myAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
user = delegate.u;
Run Code Online (Sandbox Code Playgroud)

是否在应用程序委托中将实例变量设置为User对象,并在需要时从那里引用它是一种糟糕的方式来实现它?我通常根据用户的登录设置它.

想听听专业人士如何处理这个.

iphone cocoa-touch objective-c

58
推荐指数
3
解决办法
5万
查看次数