在我的Cocoa开发中,我经常在源文件中包含一个标题,因此我可以在其中使用特定的类.但后来我从源文件中删除了该代码,忘记了(或者真的不想担心)删除相应的#import.
随着时间的推移,在整个代码库中,我的源文件中堆积了大量冗余的#import行.
现在,我知道这些线条没有任何伤害,但有没有简单的方法可以自动摆脱它们?至少它会使每个文件的顶部更清洁;)
如果我的应用程序崩溃我没有机会终止它产生的NSTasks,所以他们留在吃掉资源.
是否有任何方法可以启动任务,以便在您的应用程序终止时终止(即使它崩溃)?
我有一个iOS应用程序,我使用Xcode 4.0的"基于窗口的应用程序"模板创建.当时工作正常,它使用的是iOS 4.3 SDK.这是一个简单地将按钮,标签等直接放在窗口上的应用程序.没有视图控制器 - 没什么.
但是现在我已经升级到Xcode 4.2(以及它的iOS 5.0 SDK),并且我运行了应用程序,当应用程序在模拟器中启动时,此消息会被记录到控制台:
"应用程序在应用程序启动结束时应该有一个根视图控制器"
可以肯定的是,该应用程序继续工作,但每次启动时都会打印出这个相当麻烦的日志.
为什么会这样?为什么iOS 5.0更喜欢/请求视图控制器?
在我的界面(.h)文件中,我有
@property(readonly) NSString *foo;
Run Code Online (Sandbox Code Playgroud)
在我的实现(.m)文件中,我有
@synthesize foo;
Run Code Online (Sandbox Code Playgroud)
启用ARC后,编译器会给出以下错误:自动引用计数问题:ARC禁止使用未指定的所有权或存储属性合成Objective-C对象的属性.
该错误消失,如果我加入strong,weak或copy以财产.为什么是这样?为什么在只读属性这些东西之间会有任何差异,这些差异是什么,为什么程序员必须担心它们?为什么编译器不能智能地推导出只读属性的默认设置?
我在谈论它的另一个问题:strong,weak或者copy是ARC中唯一有意义的事情,对吧?我不应该使用retain和assign了,要这样呢?
这就是我目前设法使用特定Microsoft Web服务的方式.请注意,它位于HTTPS服务器上,并且需要.cer在操作系统的"根证书颁发机构"中安装用户名,密码和文件.
WSHttpBinding binding = new WSHttpBinding();
binding.Security.Mode = SecurityMode.TransportWithMessageCredential;
binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
binding.Security.Message.NegotiateServiceCredential = true;
binding.Security.Message.AlgorithmSuite
= System.ServiceModel.Security.SecurityAlgorithmSuite.Default;
binding.Security.Message.EstablishSecurityContext = true;
EndpointAddress endpoint = new EndpointAddress("https://address.of.service");
//"GreatClient" was created for me automatically by running
//"svcutil.exe https://address.of.service?wsdl"
GreatClient client = new GreatClient(binding, endpoint);
//Username and password for the authentication. Notice that I have also installed
//the required .cer certificate into the system's "root certificate authorities".
client.ClientCredentials.UserName.UserName = "username";
client.ClientCredentials.UserName.Password = "password";
//Now I can start using the client …Run Code Online (Sandbox Code Playgroud) 假设我的应用程序中有一个NSSecureTextField.我可以将密码读入NSString变量(我通常会这样)并将其传递给我的应用程序代码吗?它被认为是安全的,还是我必须以某种方式加密应用程序代码中的字符串变量?
另外(这是我的问题绝对关键的一部分):通过NSPipe从NSSecureTextField获取的NSString密码传递到NSTask的标准输入,为命令行工具提供密码是否安全?我主要担心的是操作系统会在某个地方记录密码,这很糟糕.
当涉及到Mac App Store提交时,/ usr/include中的所有标头是否都被保证被视为公共API的一部分?
例如考虑文件/usr/include/copyfile.h
此文件中的注释说:"此实现不完整,界面可能会在将来的版本中更改." 这会使标题非公开吗?如何确定标头是否被视为公共?
Apple的"Stocks"iPhone应用程序的图形部分是否可供开发人员使用?
我的猜测是它不是.如果我是对的,在0-100的粗略范围内,重现有多难?(我知道这是一个愚蠢的问题,但无论如何.只是想要一些想法.)另外,您认为哪种框架最适合复制?核心动画?请特别注意在横向模式下如何在图表中拖动手指以查看每个数据点的价格.这太酷了.
有没有办法在Finder中确定当前活动的窗口或文件夹?在某种意义上,我需要这个来确定一个适当的"默认"位置,在该位置可以在我的应用中执行某些特定的操作.
实际上,这个问题是否有意义?这个"当前活动的Finder窗口/文件夹"的概念是否首先存在?如果没有,我请问如何获取当前选择的 Finder项目.
有人能解释一下Cocoa框架和C静态库之间的根本区别吗?
特别是,我发现在这两种情况下我都必须在Xcode中为我的目标引用"Link Binary with Libraries"部分中的文件(.framework或.a).
但是,我似乎不必将.a放在"复制文件"中.我只需将.framework放入"复制文件"中.造成这种差异的原因是什么?
objective-c ×8
cocoa ×6
cocoa-touch ×2
c# ×1
http ×1
ios ×1
iphone ×1
post ×1
security ×1
web-services ×1
wsdl ×1
xcode ×1