@"{0, 1.0, 0, 1.0}"
我希望将上面的字符串转换为这样的结构:
struct MyVector4 {
CGFloat one;
CGFloat two;
CGFloat three;
CGFloat four;
};
typedef struct MyVector4 MyVector4;
CGRectFromString()
做同样的事情,只为CGRect
. 我怎样才能为自己的结构做到这一点?
@"{0, 1.0, 0, 1.0}"
我希望将上面的字符串转换为这样的结构:
struct MyVector4 {
CGFloat one;
CGFloat two;
CGFloat three;
CGFloat four;
};
typedef struct MyVector4 MyVector4;
CGRectFromString()
做同样的事情,只为CGRect
. 我怎样才能为自己的结构做到这一点?
可以通过以下方式完成:
-(MyVector4)myVector4FromString:(NSString*)string
{
NSString *str = nil;
str = [string substringWithRange:NSMakeRange(1, string.length - 1)];
NSArray *strs = [str componentsSeparatedByString:@","];
MyVector4 myVec4 = {0,0,0,0};
for (int i=0; i<4; i++)
{
CGFloat value = ((NSString*)[strs objectAtIndex:i]).floatValue;
if (i==0) { myVec4.one = value; } else
if (i==1) { myVec4.two = value; } else
if (i==2) { myVec4.three = value; } else
if (i==3) { myVec4.four = value; }
}
return myVec4;
}
此函数可以解析您的问题中显示的格式的字符串,例如@"{12.0,24.034,0.98,100}"