我有一个关于retain和NSString的问题,如果我有一个返回NSString的方法,并且我将返回的NSString放在一个nsstring变量中,我必须保留或不保留?
NSString *myString = @"";
myString = [self methodWhoReturnString]; // I must do this?
myString = [[self methodWhoReturnString]retain]; // Or I must do this?
Run Code Online (Sandbox Code Playgroud) 我有一个XCode项目,使用Interface Builder构建了XIB接口文件.我正在构建本地化的XIB文件,ibtool用于提取字符串,翻译它们,并ibtool再次使用它来构建本地化的XIB文件.
但是,这样做意味着我必须翻译应用程序菜单中的所有项目,包括完全标准的项目(文件,保存,打开,最小化等).有没有办法避免这种情况?
抛出软件永远不行吗?
Joel 总结说,公司永远不应该抛弃软件.
我试着成为一个优秀的小程序员并遵循这条规则.我已经进入了一个由一个人经营的五年历史的项目.它充满了反模式,通常设计不佳.大多数问题来自具有内联动态SQL的数据层.
我可以重新收集需求并使用OO,设计模式和现代.NET技术构建这个应用程序.易于管理和可饮用.
在小型应用程序中,如果出现这些问题,我们应该遵循Joel的建议吗?
这个问题可能因为主观而被抛弃,但我发现这对我作为程序员的工作至关重要.
我正在使用Java类编写SFTP模块(是的.我知道这很愚蠢.是的,我知道Net :: SFTP.这是政治上为什么我们必须这样做).
底层Java程序基本上有几个类来从服务器获取,放置,列出和删除文件.在这些调用中,您必须为其提供目录和文件.无法移出原始目录.你自己坚持做跟踪.
我决定如果跟踪你的远程目录会很好,并创建了一个Chdir方法来跟踪你所在的FTP目录.我所做的就是将目录存储在属性中,并在其他命令中使用它.很简单,它的工作原理.
问题是存储的目录名称越来越长.例如,如果目录是foo/bar/barfoo,那么$ftp->Chdir("../..")您的新目录将是,foo/bar/barfoo/../..而不是foo.两者在技术上都是正确的,但第一个更清洁,更容易理解.
我想要一些能够简化目录名称的代码.我考虑过使用File::Spec::canonpath,但具体说它不会这样做.它指的是Cwd,但这取决于直接访问机器,我通过FTP连接.
我想出了以下代码片段,但它确实缺乏优雅.它应该更简单,更明显它在做什么:
use strict;
use warnings;
my $directory = "../foo/./bar/./bar/../foo/barbar/foo/barfoo/../../fubar/barfoo/..";
print "Directory = $directory\n";
$directory =~ s{(^|[^.])\.\/}{$1}g;
print "Directory = $directory\n";
while ($directory =~ s{[^/]+/\.\.(/|$)}{}) {
print "Directory = $directory\n";
}
$directory =~ s{/$}{};
print "Directory = $directory\n";
Run Code Online (Sandbox Code Playgroud)
任何的想法?我想避免安装CPAN模块.它们在我们的服务器上安装起来非常困难.
我有一个ant文件,它执行以下操作:
<property file="project.properties" description="Project configuration properties"/>
<property file="build-defaults.properties" description="default build configuration."/>
<property file="build.properties" description="local build configuration overrides"/>
Run Code Online (Sandbox Code Playgroud)
我希望在build-defaults.properties(已签入SCM)中设置默认值,但允许开发人员覆盖本地build.properties中的值,以便它们可以使用本地路径.
问题是,它似乎没有起作用; 我已经设置了它,在build.properties中创建了一个覆盖,但是我的路径的值仍然是build-defaults.properties中设置的值.我该如何做到这一点?
如何将一个NSString复制到另一个?
@interface MyData : NSObject
{
@private
//user's private info
NSInteger uID;
NSString *name;
NSString *surname;
NSString *email;
NSString *telephone;
//user's picture
UIImage *image;
}
@property (nonatomic, assign) int uID;
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *surname;
@property (nonatomic, retain) NSString *email;
@property (nonatomic, retain) NSString *telephone;
@property (nonatomic, retain) UIImage *image;
@end
Run Code Online (Sandbox Code Playgroud)
我有两个这种类型的对象.MyData*obj1,obj2;
首先是初始化.其次我想先用初始化.
obj2 = [obj1 copy]; //crashes
newData.surname = data.surname; //crashes to
newData.email = data.email;
newData.telephone = data.telephone;
Run Code Online (Sandbox Code Playgroud)
我知道第二个对象的副本没有保留!请帮忙!感谢名单!
我是新手iPhone程序员我想使用私有框架中的一些功能
https://github.com/kennytm/iphone-private-frameworks
我想要使用的功能是'SpringBoard'
所以我在github repo中下载了'SpringBoard'文件夹.并在'SpringBoard'中创建了一个名为"Headers"的子目录,并将所有头文件放在该文件夹中.
并将'SpringBoard'重命名为'SpringBoard.framework'并将其复制到/ Developer/Platforms /(iPhoneOS_and_iPhoneSimulator)/ sdks/System/library/Frameworks文件夹(我无法回想起完整路径,对不起)
然后我回到xcode并右键单击Frameworks - >添加现有框架 - >其他 - >我选择了'SpringBoard.framework'文件夹并单击Add.
我构建了这个项目并得到了一个错误
'ld:框架SpringBoard未找到'
我导入的框架确实出现在Xcode上,我可以在其中看到头文件.但是当我建造它时,我得到了那个错误.
我究竟做错了什么?
提前,我想感谢你的帮助.这是一个很棒的社区,我在这里找到了许多编程答案.
我有一个包含多列的表,其中5列包含日期或null.
我想编写一个sql查询,它基本上将5列合并为1列,条件是如果五列中的一列包含"NULL"值,则返回的值为null.基本上与返回第一个非null的合并条件相反,我想返回第一个null.如果没有为null,则返回5个日期中最大的日期将是最佳的,但是我可以决定返回5个日期中的任何一个.
C1 C2 C3 C4 C5
-- -- -- -- --
1/1/1991 1/1/1991 1/1/1991 1/1/1991 2/2/1992
NULL 1/1/1991 1/1/1991 1/1/1991 1/1/1991
Run Code Online (Sandbox Code Playgroud)
查询返回:
C1
--
2/2/1992
NULL
Run Code Online (Sandbox Code Playgroud)
非常感谢你.
(服务器是MSSQL2008)
我正在使用Django 1.2.3中的django-compressor应用程序来缩小和合并一些包含的CSS和JS文件.在基础模板中,我有
{% load compress %}
{% compress js %}
{% block js %}
<script type="text/javascript" src="/site_media/js/jquery.query-2.1.7.js">
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
在一个孩子,
{% block js %}
{{block.super}}
<script type="text/javascript" src="/site_media/js/jquery.validate.min.js">
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
模板渲染时,第一个脚本标记正确缩小,但第二个不是.在类似的场景中,我已经确认问题是继承.
我不想在子模板中继续使用压缩标签,因为使用此应用程序的一半要点是合并文件并减少HTTP请求.我错过了什么吗?我应该研究另一个解决方案吗?