我对编程和目标C很陌生,我很难理解关于分配,内存管理以及它们如何与实例变量配合的概念。我为NSString创建了一个名为isUrl的类别,用于测试字符串中“http://”的前缀。字符串分配和实例变量
从那里我想测试一个字符串,但是,鉴于这种情况我无法弄清楚我是否应该: 1)声明一个新的字符串与@财产实例变量合成存取 2)分配一个新字符串,我实现 3)设置我的变量并为它分配
会有什么区别在这些方法之间以及为什么我可能想要使用另一种方法? -
作为一个方面说明,我正在使用O'Reilly的一本书并试图在网络上寻找答案,但迄今为止并没有很多运气。我似乎找到了一切的例子,但我解释了如何或为何使用它们更困难。
1)
NSString* string = [[[NSString alloc]init]autorelease];
string = @“http://www.google.com”;
if ([string isUrl]) {
NSLog(@"Caption is a URL");
NSLog(@"URL %@",string);
string = nil;2)
NSString* string = @"http://www.googl.com";
[string retain];
if ([string isUrl]) {
NSLog(@"Caption is a URL");
NSLog(@"URL %@",string);
string = nil;3)事情是这样的....
@synthesize string;
string.name = "http://www.google.com";
if ([string.name isUrl]) {
NSLog(@"Caption is a URL");
NSLog(@"URL %@",string);
string = nil;