标签: nsnumber

Objective-C:在字符串中查找数字

我有一个包含单词和数字的字符串.如何从字符串中提取该数字?

NSString *str = @"This is my string. #1234";
Run Code Online (Sandbox Code Playgroud)

我希望能够将1234剥离为int.每次搜索时,字符串都会有不同的数字和单词.

想法?

iphone objective-c nsnumber nsstring ios

38
推荐指数
3
解决办法
3万
查看次数

是否可以将NSInteger转换为NSNumber?

快速问题 - 是否可以将NSInteger转换为NSNumber对象?我需要将UIImageView对象的标记转换为NSNumber对象,因为我需要将它作为参数传递给函数.

casting objective-c nsnumber nsinteger

38
推荐指数
3
解决办法
4万
查看次数

获取NSNumber的类型

我想获得NSNumber实例的类型.

我在http://www.cocoadev.com/index.pl?NSNumber上发现了这个:

 NSNumber *myNum = [[NSNumber alloc] initWithBool:TRUE];

 if ([[myNum className] isEqualToString:@"NSCFNumber"]) {
  // process NSNumber as integer
 } else if  ([[myNum className] isEqualToString:@"NSCFBoolean"]) {
  // process NSNumber as boolean
 }

好的,但这不起作用,编译器无法识别[myNum className].我正在为iPhone编译.

objective-c nsnumber

36
推荐指数
7
解决办法
2万
查看次数

在Swift 3中使用NSNumber和Integer值

我正在尝试将我的项目转换为Swift 3.0但是在使用NSNumber和时我有两个错误消息Integers.

无法将类型int指定为类型NSNumber

对于

//item is a NSManaged object with a property called index of type NSNumber 

var currentIndex = 0
 for item in self.selectedObject.arrayOfItems {
   item.index = currentIndex
   currentIndex += 1
 }
Run Code Online (Sandbox Code Playgroud)

甚至当我改变currentIndex一个类型NSNumber然后我得到错误

二进制运算符'+ ='不能应用于'NSNumber'和'Int'类型

所以然后我创建一个名为onetype 的属性NSNumber来添加,currentIndex但后来得到以下错误;

二进制运算符'+ ='不能应用于两个NSNumber操作数

&&我得到的第二个错误是

没有'+'候选者产生预期的上下文结果类型NSNumber

 let num: Int = 210
 let num2: Int = item.points.intValue
 item.points = num + num2
Run Code Online (Sandbox Code Playgroud)

在这里我只想尝试将210添加到points属性值,item是一个NSManagedObject.

所以基本上我遇到了一些问题,我想把数字添加到类型属性中NSNumber.我正在工作,NSNumber …

int nsnumber ios swift swift3

36
推荐指数
3
解决办法
4万
查看次数

比较两个NSNumber对象

我使用此代码比较两个NSNumber对象,但它从未传递if条件.

listItems = [appDelegate.productStatus componentsSeparatedByString:@","];


for (int i=0;i<[appDelegate.productArray count]; i++)
{

    for (int j=0; j<[listItems count]; j++) 
    {
        number=[NSNumber numberWithInt:[[listItems objectAtIndex:j] intValue]];
        NSLog(@"number %@",number);
        productObject=[appDelegate.productArray objectAtIndex:i];           
        NSLog(@"%@,%@",productObject.pid,number);
        if (productObject.pid == number) 
        {
            NSLog(@"BUY it!!!");
            [purchasArray addObject:productObject];
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

怎么了?

comparison nsnumber ios

27
推荐指数
3
解决办法
3万
查看次数

在Swift中将CGFloat转换为NSNumber

我在Swift中有一个扩展,它包含了一些属性CGFloat.问题是我不知道如何使用关联对象获取存储的CGFloatNSNumber

这是我的代码不起作用,但它详细说明了我想做的事情:

var scaledFontSize: CGFloat {
    get {
        guard let fontSize = objc_getAssociatedObject(self, &AssociatedKeys.scaledFontSize) as? NSNumber else {
            //Set it
            let scaledFont:CGFloat = VGSizeValues.getValueFromValue(self.font.pointSize);
                //Fails here
            objc_setAssociatedObject(self,&AssociatedKeys.scaledFontSize, NSNumber( scaledFont),objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            return scaledFont;
        }
        return CGFloat(fontSize.doubleValue);

    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题?

casting nsnumber cgfloat ios swift

27
推荐指数
3
解决办法
1万
查看次数

在Int上使用setValue(value,forKey:key)?类型触发非键值编码兼容方法

setValue(value, forKey: key)在我的NSKeyValueCoding兼容的Swift NSObject子类中成功使用了该方法.

这在String选项上非常有效,例如

var name:String?
Run Code Online (Sandbox Code Playgroud)

但是,在Int选项上,它会失败,触发我为了调试目的而重写的未定义键方法:

override func setValue(value: AnyObject!, forUndefinedKey key: String!) {
    println("\(self) this class is not key value coding-compliant for the key \(key)")
}
Run Code Online (Sandbox Code Playgroud)

因此,例如,myId具有良好整数值的键将触发上面的未定义键方法.

var myId:Int?
Run Code Online (Sandbox Code Playgroud)

如果我将上面的定义更改为非可选,那么一切正常:

var myId:Int = 0
Run Code Online (Sandbox Code Playgroud)

随着myId作为一个可选的,我已经试过绝对一切,我可以在铸造,展开,初始化等方式想到的.它只是没有将类视为符合这些数值的键值.

我知道这是一个很好的数值.将var声明更改为String?崩溃.它在lldb看起来也很好:

Printing description of key:
myId
key NSObject    0x00007fb8d530ca20  0x00007fb8d530ca20
k   NSString    "myId"  0x00007fa2aa942f20
value   __NSCFNumber *  Int64(4348129)  0xb000000004258e13
Printing description of value:
4348129
(lldb) 
Run Code Online (Sandbox Code Playgroud)

所以,问题是,有没有人在Swift中使用过 - setValue(value, forKey: key) Int类型的NSKeyValueCoding方法成功了吗?

key-value-coding nsnumber swift nskeyvaluecoding

25
推荐指数
1
解决办法
5946
查看次数

如何从NSArray获得NSNumber的总和?

我有一个像大等NSArray包含...NSNumbers3, 4, 20, 10, 1, 100,

如何将所有这些NSNumber的总和(3 + 4 + 20 + 10 + 1 + 100 + etc...)作为一个总和NSInteger

谢谢!

iphone objective-c nsnumber nsarray nsinteger

24
推荐指数
3
解决办法
2万
查看次数

存储和检索NSString中的无符号long long值

我有一个unsigned long long值,我想存储到NSString并从字符串中检索.

最初我在NSNumber中有值,我使用它来获取字符串

NSString *numStr = [NSString stringWithFormat:@"%llu", [myNum unsignedLongLongValue]];
Run Code Online (Sandbox Code Playgroud)

其中myNum是NSNumber.

要从NSString返回NSNumber,我必须首先获得unsigned long long值.但是NSString类中没有方法可以做到这一点(我们只有一个用于获取long long值,而不是unsigned long long值).

有人可以告诉我如何将值恢复到NSNumber变量中.

谢谢.

objective-c nsnumber nsstring

23
推荐指数
1
解决办法
3万
查看次数

为什么NSNumber不可变?

为什么NSNumber不可变?有充分的理由吗?因为现在我正在考虑创建自己的类只是为了可变性.

objective-c nsnumber

22
推荐指数
3
解决办法
3920
查看次数