Nsstring * s = [[Nsstring alloc] initWithString:@"Hello,World"]; s = s.lowercaseString;NSLog(@"%@",s);
…允许使用点表示法,但是强类型.
这段代码……
ID s = [[Nsstring alloc] initWithString:@"Hello,World"]; s = [s lowercaseString];NSLog(@"%@",s);
…是弱类型的,需要使用方括号.
除此之外,使用一个优于另一个是否有任何优势?
解决方法 如果您正在创建Nsstring,那么您也可以将其声明为Nsstring,并让编译器帮助您.使用ID的目的是防止强耦合,并使用直到稍后才知道其类型的对象.例如,IBAction方法将发送者作为参数包括为ID,因为对象的确切类型是未知的.
编辑添加:
你可能不熟悉这种语言,所以我会提到一些事情
首先,你有@“Hello,World”,你已经有了一个Nsstring,只有一个是静态的.所以你不需要通过initWithString来创建它.写吧:
Nsstring *s = @"Hello,World";
而且,因为你没有分配它,你不必担心释放它.
其次是s.lowerCaseString.正如史蒂芬已经回答的那样,这被认为是糟糕的风格.当您将字符串更改为小写时,您没有获得该字符串的属性,您正在对该字符串执行 *** 作,在这种情况下,您确实应该使用括号语法.
总结以上是内存溢出为你收集整理的objective-c – Objective C中数据类型id与NSString的优势?全部内容,希望文章能够帮你解决objective-c – Objective C中数据类型id与NSString的优势?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)