objective-c – Objective C中数据类型id与NSString的优势?

objective-c – Objective C中数据类型id与NSString的优势?,第1张

概述这段代码…… NSString * s = [[NSString alloc] initWithString:@"Hello, World"]; s = s.lowercaseString;NSLog(@"%@", s); …允许使用点表示法,但是强类型. 这段代码…… id s = [[NSString alloc] initWithString:@"Hello, World"]; s = 这段代码……

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的优势?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存