我有一个关于何时释放NSArray元素的新手问题.请参阅以下伪代码:
NSMutalbeArray *2DArray = [[NSMutableArray alloc] initWithCapacity:10];
for (int i=0;i<10;i++) {
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
for (int j=0;j<5;j++) {
MyObject *obj = [[MyObject alloc] init];
[array addObject:obj];
[obj release];
}
[2DArray addObject:array];
[array release];
}
// use 2DArray to do something
[2DArray release]
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我发布2DArray时,我是否需要先显式释放每个元素(数组)?另外,在我发布"数组"对象之前,我是否需要首先释放它的每个元素(MyObject)?
我是Objective C的新手.请帮助.谢谢.
在Windows(可能是Unix)中,在(32位)程序中使用chdir()函数不会在程序退出时更改目录.(它在16位Windows程序中执行.)
有人知道如何在Windows 32位程序中执行此操作吗?
我最近将一些代码从java转换为scala,试图自学语言.
假设我们有这个scala类:
class Person() {
var name:String = "joebob"
}
Run Code Online (Sandbox Code Playgroud)
现在我想从java访问它,所以我不能像我在scala那样使用点符号.
所以我可以通过发出以下内容来获取我的var的内容:
person = Person.new();
System.out.println(person.name());
Run Code Online (Sandbox Code Playgroud)
并通过以下方式设置:
person = Person.new();
person.name_$eq("sallysue");
System.out.println(person.name());
Run Code Online (Sandbox Code Playgroud)
这是正确的,因为我们的Person类在javap中看起来像这样:
Compiled from "Person.scala"
public class Person extends java.lang.Object implements scala.ScalaObject{
public Person();
public void name_$eq(java.lang.String);
public java.lang.String name();
}
Run Code Online (Sandbox Code Playgroud)
是的,我可以编写自己的getter/setter但是我讨厌用这个来填充类,考虑到我已经拥有它们并没有多大意义 - 我只想更好地为_ $ eq方法添加别名.(当你处理像antlr这样的东西时,这实际上会变得更糟,因为那时你必须逃避它,它最终看起来像person.name _\$ eq("newname");
注意:我宁愿忍受这个,而不是用更多的setter方法填充我的类.
那么在这种情况下你会做什么?
我想确定一个短网址的长网址是什么.我尝试过使用http HEAD请求,但很少有返回的头字段实际上包含与destination/long url相关的任何数据.
有:1.任何方法来确定长网址?2.如果是这样,可以在不下载目的地主体的情况下完成吗?
谢谢
我有4个字符串变量name, quest, favorite_color, speed可能是空的.我想将它们连接在一起,在非空的空格之间放置空格.代码的简单性,即查看和理解的简单程度,比速度更重要.
所以:
name = 'Tim'
quest = 'destroy'
favorite_color = 'red'
speed = 'fast'
Run Code Online (Sandbox Code Playgroud)
变
'Tim destroy red fast'
Run Code Online (Sandbox Code Playgroud)
和
name = 'Steve'
quest = ''
favorite_color = ''
speed = 'slow'
Run Code Online (Sandbox Code Playgroud)
变为:
'Steve slow'
Run Code Online (Sandbox Code Playgroud)
请注意,'Steve'和'slow'之间只有1个空格.
我该怎么做(最好是一行)?
我想在web.xml中定义和初始化一些变量,并在我的Java应用程序中访问这些变量的值.
我想这样做的原因是因为我希望能够更改这些变量的值而无需重新编译代码.
这样做的最佳做法是什么?大多数变量只是字符串,也可能是一些数字.访问变量的类必须是servlet吗?
谢谢!
克里斯
想知道以下是否适用于robots.txt中的google
禁止:/*.action
我需要排除以.action结尾的所有网址.
它是否正确?
有没有办法动态创建selectItem列表?我真的不想创建大量的bean代码来让我的列表返回List<SelectItem>.
我试过这个:
<ice:selectManyCheckbox>
<ui:repeat var="product" value="#{productListingService.list}">
<f:selectItem itemLabel="#{product.description}" value="#{product.id}"/>
</ui:repeat>
</ice:selectManyCheckbox>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
有任何想法吗?
WCF服务库对常规类库没有做什么?
编辑:我发布了自己的答案.我错过了什么吗?它们基本上只是添加了几个模板类的类库吗?
假设我有这个字符串var:
string strData = "1|2|3|4||a|b|c|d"
Run Code Online (Sandbox Code Playgroud)
然后,我做了一个分裂:
string[] strNumbers = strData.Split("||"); //something like this, I know It's not this simple
Run Code Online (Sandbox Code Playgroud)
我需要两个独立的部分,每个部分包含:
//strNumbers -> {"1","2","3","4"},{"a","b","c","d"}
Run Code Online (Sandbox Code Playgroud)
所以在那之后,我可以这样做:
string[] strNumArray = strNumbers[0].Split('|');
//strNumArray -> '1', '2', '3', '4'
Run Code Online (Sandbox Code Playgroud)
和其他部分(字母)一样.
可能吗?使这个双重分裂具有相同的字符,但第一次重复两次字符?
谢谢.
PD.我正在使用C#.