sky*_*ate 1 struct objective-c
为什么我不能像这样使用struct?
typedef struct { unsigned char FirstName; unsigned char LastName; unsigned int age; } User;
User UserNick = {Nick, Watson, 24};
NSLog(@"Your paint job is (R: %NSString, G: %NSString, B: %u)",
UserNick.FirstName, UserNick.LastName, UserNick.age);
Run Code Online (Sandbox Code Playgroud)
我的意思是我确实使用了这样的结构:
typedef struct {unsigned char red; unsigned char green; unsigned char blue; } Color;
Color carColor = {255, 65,0};
NSLog(@"Your paint job is (R: %hhu, G: %hhu, B: %hhu)",
carColor.red, carColor.green, carColor.blue);
Run Code Online (Sandbox Code Playgroud)
如果要使用C字符串,则需要以下代码:
typedef struct { unsigned char *FirstName; unsigned char *LastName; unsigned int age; } User;
User UserNick = {"Nick", "Watson", 24};
NSLog(@"Your paint job is (R: %s, G: %s, B: %u)",
UserNick.FirstName, UserNick.LastName, UserNick.age);
Run Code Online (Sandbox Code Playgroud)
C字符串是char *.C字符串文字需要在引号中.%s是C字符串的格式说明符.
另一个建议 - 用小写字母开始字段名称(和变量名称).
而且由于你正在使用Objective-C,如果你创建User一个真正的类而不是一个类,你可能会变得更好struct.然后,您可以使用属性和适当的内存管理.名称可以是NSStringC字符串而不是C字符串.这使得将对象存储在集合中变得容易,并且可以使用普通的旧对象进行其他有用的操作struct.
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |