小编Evg*_*ban的帖子

将NSString值转换为int

这可能听起来很奇怪.

我得到一个NSString值NSString * numb = [self.dataDict valueForKey:@"id"];,我知道,这是某种整数(例如,我需要整数来比较 - 如果val小于或等于某事).我需要知道它是什么整数.

我尝试过的:

   NSNumber *numba = [self.dataDict valueForKey:@"id"];
Run Code Online (Sandbox Code Playgroud)

NSLog输出 - numba is 2038735264

实际上那是428.

有没有办法达到这一点?谢谢!

那是一个responseObject:

({id = 3; dog ="\ U041a\U0430\U043a\U043e\U0439-\U0442\U043e\U043c\U0443\U0434\U0430\U043a\U043d\U0430\U043a\U0440\U0443\U0442\U0438\U043b "; image ="cute_dog/116.jpg";得分= 586;},{id = 115;狗="\ U0422\U0430\U043d\U044f\U041a\U043b\U044e\U043a\U0432\U0438\U043d\U0430 "; image ="cute_dog/115.jpg";得分= 481;},

objective-c nsstring

0
推荐指数
1
解决办法
1060
查看次数

在Swift中解码base64字符串

我有以下base64编码的字符串:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjdEODU3RjE3RjMwQTBBNzY4OUQ4RTFDMTI0RjRFMzk1MEU2REIyQ0YiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmWVZfRl9NS0NuYUoyT0hCSlBUamxRNXRzczgifQ
Run Code Online (Sandbox Code Playgroud)

我可以轻松地在线解码,例如这里

但是,当我尝试快速解码时,我不成功,我使用了:

func fromBase64() -> String? {
    guard let data = Data(base64Encoded: self) else {
      return nil
    }

    return String(data: data, encoding: .utf8)
  }
Run Code Online (Sandbox Code Playgroud)

但是我返回零。

swift

0
推荐指数
1
解决办法
59
查看次数

Swift:语法解释 - 圆括号然后"在"

我按照教程并与以下代码混淆:

 let rectToDisplay  = self.treasures.reduce(MKMapRectNull){

            (mapRect: MKMapRect, treasure: Treasure) -> MKMapRect in

            let treasurePointRect =
                MKMapRect (origin: treasure.location.mapPoint, size: MKMapSize (width: 0, height: 0))

            return MKMapRectUnion(mapRect, treasurePointRect)
        }
Run Code Online (Sandbox Code Playgroud)

事实上,我不理解那条线:

    (mapRect: MKMapRect, treasure: Treasure) -> MKMapRect in
Run Code Online (Sandbox Code Playgroud)

这是某种功能还是什么?什么是输出?我不太明白那种建筑的意义(struct: struct, someClass: someClass) -> Struct in

这是什么逻辑?"in"是什么意思?

如果您想知道,treasure是包含坐标属性的自定义类 - 纬度,经度等.

我理解该代码片段的"整体"含义,但该行的语法让我感到困惑.

你能解释一下吗?非常感谢!

ios swift

-2
推荐指数
1
解决办法
451
查看次数

无法使用for循环创建NSMutableArray

我希望有一个数值为"25公斤","26公斤"......"149公斤","150公斤"的阵列.为了简化任务我写了这个:

-(NSMutableArray*)weightArray{

    NSMutableArray *myArray;
    for (int i=25; i++; i<150){
        NSString *weightString;
        weightString = [NSString stringWithFormat:@"%d kg", i];
        [myArray addObject:weightString];
    }
    return myArray;
}
Run Code Online (Sandbox Code Playgroud)

然后在我的视图中的viewDidload中我写道:NSLog (@"%@", [self weightArray]); 但看起来它不起作用.我可能会遗漏像语法这样明显的东西.为什么不起作用?

更新:最后我找到了一个解决方案 - 首先,我在@implementation部分声明了weightArray,然后我写道:

-(void)fillingArray{

    if (!weightArray){
        for (int i=25; i<150 ;i++){
            NSString *weightString = [[NSMutableArray alloc] init];
            weightString = [NSString stringWithFormat:@"%d kg", i];
            [weightArray addObject:weightString];
            NSLog(@"%@", weightString);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

在viewDidLoad我写道:

[self fillingArray];  
 NSLog(@"%@", weightArray);
Run Code Online (Sandbox Code Playgroud)

我想,我的问题出在那个字符串NSLog(@"%@",[self weightArray]); 在方括号中,它假设是方法名称,但我试图指向数组,没有任何事情发生.

iphone objective-c nsmutablearray ios

-5
推荐指数
1
解决办法
491
查看次数

标签 统计

ios ×2

objective-c ×2

swift ×2

iphone ×1

nsmutablearray ×1

nsstring ×1