Как получить это значение как CGFloat?

Вот UDF, который сделает это. Это возвратит таблицу разграниченных значений, не попробовали все сценарии на нем, но Ваш пример хорошо работает.


CREATE FUNCTION SplitString 
(
    -- Add the parameters for the function here
    @myString varchar(500),
    @deliminator varchar(10)
)
RETURNS 
@ReturnTable TABLE 
(
    -- Add the column definitions for the TABLE variable here
    [id] [int] IDENTITY(1,1) NOT NULL,
    [part] [varchar](50) NULL
)
AS
BEGIN
        Declare @iSpaces int
        Declare @part varchar(50)

        --initialize spaces
        Select @iSpaces = charindex(@deliminator,@myString,0)
        While @iSpaces > 0

        Begin
            Select @part = substring(@myString,0,charindex(@deliminator,@myString,0))

            Insert Into @ReturnTable(part)
            Select @part

    Select @myString = substring(@mystring,charindex(@deliminator,@myString,0)+ len(@deliminator),len(@myString) - charindex(' ',@myString,0))


            Select @iSpaces = charindex(@deliminator,@myString,0)
        end

        If len(@myString) > 0
            Insert Into @ReturnTable
            Select @myString

    RETURN 
END
GO

Вы назвали бы его как это:


Select * From SplitString('Hello John Smith',' ')

Редактирование: Обновленное решение обработать delimters с len> 1 как в:


select * From SplitString('Hello**John**Smith','**')
5
задан Thanks 31 July 2009 в 14:48
поделиться

2 ответа

В Swift:

let f = view.layer.valueForKeyPath("transform.rotation.z")!.floatValue

В Objective-C:

NSNumber* n = [self.layer valueForKeyPath:@"transform.rotation.z"];
CGFloat f = [n floatValue];
19
ответ дан 18 December 2019 в 08:29
поделиться

Если вам нужен более краткий, однострочный способ сделать это, вы можете сделать:

CGFloat f = [[self.layer valueForKeyPath:@"transform.rotation.z"] floatValue];
0
ответ дан 18 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: