我通常会看到这个问题是另一种方式,例如每个伊娃都必须是财产吗?(我喜欢bbum对这个Q的回答).
我几乎只在我的代码中使用属性.然而,每隔一段时间,我就与一位长期在iOS上开发并且是传统游戏程序员的承包商合作.他编写的代码几乎没有声明任何属性,并且依赖于ivars.我认为他这样做是因为1.)他已经习惯了,因为在Objective C 2.0(2007年10月)和2)之前,属性并不总是存在,因为没有经过getter/setter的最小性能增益.
虽然他编写了不泄漏的代码,但我仍然希望他使用ivars上的属性.我们讨论过它,他或多或少看不到使用属性的理由,因为我们没有使用KVO,而且他在处理内存问题方面经验丰富.
我的问题更多......为什么你会想要使用伊娃时期 - 经验丰富与否.使用ivar真的有很大的性能差异吗?
另外作为澄清点,我根据需要覆盖了setter和getter,并使用与getter/setter中的属性相关的ivar.但是,在getter/setter或init之外,我总是使用self.myProperty
语法.
我感谢所有好的回应.我想解决的一个看起来不正确的是,使用ivar你可以获得封装,而不是使用属性.只需在类继续中定义属性即可.这会将财产隐藏在外人之外.您还可以在接口中声明属性readonly,并在实现中将其重新定义为readwrite,如:
// readonly for outsiders
@property (nonatomic, copy, readonly) NSString * name;
Run Code Online (Sandbox Code Playgroud)
并在课堂上继续:
// readwrite within this file
@property (nonatomic, copy) NSString * name;
Run Code Online (Sandbox Code Playgroud)
让它完全"私有"只在类继续中声明它.
我从未在pdf中添加javascript动作.但是,我已经使用javascript做了很多web开发.对于熟悉PDF中的javascript的人,我有几个问题.
NitroPDF和Adobe Acrobat肯定支持PDF格式的javascript. 是否有存在的各种对象的标准和通过javascript操作pdf的功能? 到目前为止我发现的一切都来自Adobe.其他任何地方似乎都参考了Adobe的文档.那里有标准,还是Adobe只是"de Facto"标准?
此外,所有PDF查看器都支持JavaScript操作吗?
在我可以找到的pdf文档中使用javascript的最佳文档来自Adobe - Adobe :: Acrobat Javascript脚本指南.
NitroPDF有这个链接 - 在PDF文件中的NitroPDF :: Javascript,但它基本上只是说它支持Adobe所拥有的.
我还从Scribus发现了这个链接 - Scribus ::如何使用JavaScript增强PDF表单,但这只包括一小段代码.没有什么超级有用的.
Adobe有关于如何使用IDE为javascript设置断点等的文档.是否可以使用另一个IDE在pdf中运行javascript并有断点等...?找到像Firebug一样酷的东西真是太棒了.
请不要回答如何操作Web浏览器中加载的PDF.问题是关于从PDF文档中运行javascript.我正试图通过在PDF文档中执行javascript来探索可用的可能性.具体来说,我可以使用quickpdflibrary中的函数将javascript功能添加到现有文档中.
另一个有用的链接是使用Acrobat Javascript进行开发.显然,PDF格式的js经常被称为AcroJS或Acrobat JavaScript.
.Net中的参数化查询在示例中总是如下所示:
SqlCommand comm = new SqlCommand(@"
SELECT *
FROM Products
WHERE Category_ID = @categoryid
",
conn);
comm.Parameters.Add("@categoryid", SqlDbType.Int);
comm.Parameters["@categoryid"].Value = CategoryID;
Run Code Online (Sandbox Code Playgroud)
但是我碰到了一堵砖墙试图做到以下几点:
SqlCommand comm = new SqlCommand(@"
SELECT *
FROM Products
WHERE Category_ID IN (@categoryids)
OR name LIKE '%@name%'
",
conn);
comm.Parameters.Add("@categoryids", SqlDbType.Int);
comm.Parameters["@categoryids"].Value = CategoryIDs;
comm.Parameters.Add("@name", SqlDbType.Int);
comm.Parameters["@name"].Value = Name;
Run Code Online (Sandbox Code Playgroud)
哪里
什么是正确的语法?
我正在动态填充标题(UILabel).有时它太长了,IOS挤压字体以适应宽度.有没有办法使用相同的字体大小做多行?
试图调试应用程序.麻烦的是我找不到这个程序.
symbolicatecrash.sh
sudo cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/symbolicatecrash /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)
它是单独的下载吗?我正在使用XCode 3.2.3
谢谢.
提交或更新应用时,您面临的一个问题是:
自上次上传此产品的二进制文件以来,您是否添加或更改了加密功能?
图片:
我的问题是,如果我使用从<CommonCrypto/CommonCryptor.h>
库中获得的加密,我是否必须对该Q进行检查?
我有一个文件,我想加密,发送到iPhone,并使用CommonCrypto在iPhone上解密.与同事交谈时,我得到了不同的回答.有些人认为,由于它是一个包含在内的公平游戏框架,其他人则表示你必须得到政府的批准.
看起来CommonCrypto支持(充其量)采用ECB密码模式的AES 128位加密.所以,这就是我计划使用的东西.
附注:我计划在github 上使用AlanQuatermain/aqtoolkit中的NSData+CommonCrypto
类别.这只是CommonCrypto的一个包装,仅此而已.
相关的是,如果您使用HTTPS(SSL),是否必须选中YES?请参阅进行HTTPS(TLS)连接的应用程序的iPhone加密导出合规性 - 续.我不需要https连接,但这让我感到惊讶......
我正在开发一个我想使用就地编译的网站,以便让第一次点击更快.我想用ClientBuildManager
.CompileFile
进行就地编译的方法,以便我控制编译过程.由于各种原因,这是编译本网站的理想方式.
当我通过文件编译网站文件时ClientBuildManager
.CompileFile
在为此目的构建的exe中的方法,输出转到"临时ASP.NET文件"下的子目录.但是,当以后点击网站时,IIS会在"临时ASP.NET文件"下的不同子目录下重建控件,使之前的就地编译变得毫无价值.
注意:在"临时ASP.NET文件"下的就地编译期间创建的程序集将保持不变(仍然存在).
注意:就地编译程序集文件夹和IIS生成的程序集文件夹都位于相同的"Temporary ASP.NET Files"目录下.
例:
ClientBuildManager
.CompileFile
组态var buildParameter = new ClientBuildManagerParameter
{
PrecompilationFlags = PrecompilationFlags.Default,
};
var clientBuildManager = new ClientBuildManager(
RootVirtualPath, RootPhysicalPath, null, buildParameter);
...
clientBuildManager.CompileFile(relativeVirtualPath, callback);
Run Code Online (Sandbox Code Playgroud)
哪里RootVirtualPath
是简单的""默认网站. RootPhysicalPath
指向网站磁盘上的位置. relativeVirtualPath
形式为"〜/ myFile.aspx".回调用于跟踪进度.
我正在开发一款iPad应用程序,可与播放声音的配件连接.当iPad连接到配件时,我想将所有系统声音静音但允许其他声音(iPod).
造成这种情况的部分原因是附件是在现场演出期间使用的.显然,让电子邮件,警报或任何其他系统声音通过并放大(疯狂大声)会很烦人.
我已经看过使用AVAudioSession(阅读音频会话了解更多)并尝试了所有的AudioSessionCategories.这些类别都不会使系统声音静音,而是只允许您静音应用程序声音(iPod) - 对我的目的无用.
我还在" 系统声音服务 " 上找到了文档,但这只允许你播放系统声音.这里没有api可以在你的应用程序运行时禁用系统声音.
最后一点,我们通过包含MPVolumeView轻松调整iPad级别(音量),但我们希望用户想要播放iPod音乐.如果在播放iPod中的音乐(或音乐从其他应用程序)和电子邮件来过,你会惊讶有LOUD /烦人,电子邮件通过我们的配件去时,突然变得.甚至可能会损坏设备.:d
我想知道一个对象被自动释放了多少次.我已经使用了足够长的目标c,通常可以直接知道某个对象是否已经自动释放,但是我经常会看到处理内存和保留计数的问题.在某些时候,答案总是结束,"你不能相信一个对象的retainCount" - 我同意这一点,但如果你能确定一个对象被自动释放的次数,那么你真的可以信任 retainCount如果你添加了像这样的类别:
@interface NSObject (NSObject_MemoryDebugging)
- (NSUInteger) autoReleaseCount;
- (NSUInteger) retainCountWithAutoRelease;
@end
@implementation]
/** Determine how many times this object has been marked for autorelease **/
- (NSUInteger) autoReleaseCount;
{
// ??? not sure how to figure this out.
return 0;
}
- (NSUInteger) retainCountWithAutoRelease
{
NSUInteger retainCount = [self retainCount];
NSUInteger autoReleaseCount = [self getAutoReleaseCount]; // ???
return retainCount - autoReleaseCount;
}
@end
Run Code Online (Sandbox Code Playgroud)
对于不可变类型仍然存在异常,因为这些通常会在复制期间增加保留计数,因此您仍然无法信任retainCount.
我不是在生产代码中使用retainCount来寻求此答案.但是,我可以看到这对于调试内存问题的人来说很有价值.
我想有些人会讨厌这个问题,因为程序员不应该关心对象被自动释放的次数.编码应该是关于平衡分配,保留,复制,新版本和故事结束.然而,重点是帮助人们敲打头脑. [NSObject retainCount]
烧了很多人,这个问题的答案会很酷.
我确定有一种方法可以确定一个对象被自动释放的次数.我只是不知道它是什么,因此问题.
看到类似的问题:Objective-c中NSAutoreleasePool内的对象.
谢谢大家的答案.你可能会发现这个有趣的=> …
我有一个课程来管理来自和外部附件到iPad的消息.在init中我有以下代码:
- (id) init
{
self = [super init];
if (!self) return;
[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications]; //we want to hear about accessories connecting and disconnecting
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(accessoryDidConnect:)
name:EAAccessoryDidConnectNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(accessoryDidDisconnect:)
name:EAAccessoryDidDisconnectNotification
object:nil];
...
}
Run Code Online (Sandbox Code Playgroud)
在dealloc我有
- (void) dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:EAAccessoryDidDisconnectNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:EAAccessoryDidConnectNotification object:nil];
[[EAAccessoryManager sharedAccessoryManager] unregisterForLocalNotifications];
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我将外部附件连接到iPad时,accessoryDidConnect:会触发一个accessoryDidDisconnect:随后是accessoryDidConnect:
我无法弄清楚为什么我会得到额外的连接和断开连接.有任何想法吗?
ios ×7
ipad ×3
objective-c ×3
iphone ×2
.net ×1
.net-4.0 ×1
accessory ×1
acrobat ×1
aes ×1
asp.net ×1
c# ×1
commoncrypto ×1
crash-log ×1
encryption ×1
https ×1
iis-7 ×1
ivar ×1
javascript ×1
memory-leaks ×1
multiline ×1
parameters ×1
pdf ×1
retaincount ×1
sql ×1
uilabel ×1