小编Le *_*ced的帖子

NSAttributedString的示例有两种不同的字体大小?

NSAttributedString 对我来说真是难以捉摸.

我想设置一个UILabel具有不同大小的文本,我收集的NSAttributedString是要走的路,但我无法获得任何关于此的文档.

如果有人能用一个具体的例子来帮助我,我会很高兴.

例如,假设我想要的文字是:

(in small letters:) "Presenting The Great..."
(in huge letters:) "HULK HOGAN!"
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我该怎么做吗?或者甚至是一个简单明了的参考资料,我可以为自己学习?我发誓我已经尝试通过文档来理解这一点,甚至通过Stack Overflow上的其他示例,我只是没有得到它.

nsattributedstring ios

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

没有#import,Swift有自己的简单方法来检测循环依赖吗?

#import "whatever.h"
Run Code Online (Sandbox Code Playgroud)

...并不完美,但它对于诊断循环依赖性非常方便,更不用说强制执行模块化了.

您可以确定哪些课程了解其他课程 - 只需轻轻一按即可.

如果必须,您可以注释掉所有 import语句,并一次添加一个,以便诊断依赖性问题.它不一定快,但它很简单.

如果一个班级没有导入除强制标题以外的任何东西,Son,那是你在那里的一个模块化课程!

如果你的项目有十个类没有导入任何东西,那么你就知道它们是十个模块化的类 - 你不必将每个类打包到它自己的Framework或类似的东西中.简单.

但现在,随着斯威夫特的"每个人都知道所有事情"的政策,似乎只是个人保持警惕以维持模块化.个人警惕是最糟糕的一种!

我错过了什么吗?有没有办法在Swift中轻松完成这些操作?

swift

8
推荐指数
1
解决办法
643
查看次数

为什么XCode不会从正确导入的标头中识别出typedef?

这非常奇怪,让我疯了.我曾经有一个叫做的课Constants.就是这样typedef:

typedef enum visible_thing {

    BACKGROUND,
    BACKGROUND_COLOR,
    MAIN_WINDOW

} VISIBLE_THING;
Run Code Online (Sandbox Code Playgroud)

而我,生活更美好!我在任何需要访问此类型的地方导入'Constants.h`,这一切都奏效了.

然后我决定去Constants上课.我拿了typedef然后把它放在另一个类中,为了清楚起见我们称之为OtherClass.我经历并改变了所有进口的Constants.h进口,OtherClass.h这就是我所做的一切,我没有触及任何其他代码.而现在整个事情都破了!

与之完美配合的方法Constants现在给我这个错误:Parse Issue - Expected a type.有没有搞错?我当然希望有人在这方面有一些线索!

更新:令人沮丧的是,这是一个似乎在没有解释的情况下自行消失的问题之一.我在下面回答了我自己的问题,通过一种解决方法,我发现需要在一个文件中多次导入相同的标头.但今天我删除了额外的#import,一切仍然有效.精氨酸.电脑!

typedef objective-c ios

6
推荐指数
2
解决办法
3014
查看次数

Swift:我可以添加和减去`dispatch_time_t` 变量吗?

我需要在 iOS 中用 Swift 做一些时间数学。

我必须使用dispatch_walltime. 我希望这可以被视为公理。就时间数学而言,我想我可能会得到“只是使用NSDate”的回应,但请相信:我一定会dispatch_walltime

现在,很明显为什么有人会建议NSDate,因为当您使用NSTimeIntervalandNSDate和那些好东西时,制作自定义时间戳并比较它们并进行各种时间数学计算非常容易。

但我必须使用dispatch_time_t, 并且专门dispatch_walltime像这样创建:

//Get the timeInterval of now.
let nowInterval = NSDate().timeIntervalSince1970

//Make a timespec from it.
var nowStruct = timespec(tv_sec: Int(nowInterval), tv_nsec: 0)

//Make a walltime definition from that.
let referenceWalltime = dispatch_walltime(&nowStruct, 0)
Run Code Online (Sandbox Code Playgroud)

稍后我需要以各种方式使用该参考时间。例如,我需要获取参考时间和它发生的任何时间之间的时间间隔。

我正在尝试以与 相同的方式执行此操作NSTimeInterval,换句话说,创建一个新的并从中减去旧的:

//Repeat everything from before to make a new wall time.
let newNowInterval = NSDate().timeIntervalSince1970
var newNowStruct = …
Run Code Online (Sandbox Code Playgroud)

time grand-central-dispatch ios swift

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

在Swift中,如何从dispatch_time_t获取NSDate?

"Walltime"是Grand Central Dispatch使用的一种鲜为人知的时间格式.Apple在这里谈到它:

https://developer.apple.com/library/ios/documentation/Performance/Reference/GCD_libdispatch_Ref/

但是有一些东西真的很方便,但它是一个粘性的检票口.很难让它与其他时间格式一起玩得很好,这就是我的问题所在.

我可以通过将a NSDate转换为a 来进行壁挂timespec,然后使用dispatch_walltime:

 let now = NSDate().timeIntervalSince1970
 let nowWholeSecsFloor = floor(now)
 let nowNanosOnly = now - nowWholeSecsFloor
 let nowNanosFloor = floor(nowNanosOnly * Double(NSEC_PER_SEC))
 var thisStruct = timespec(tv_sec: Int(nowWholeSecsFloor),
 tv_nsec: Int(nowNanosFloor))
 let wallTime = dispatch_walltime(& thisStruct, 0)
Run Code Online (Sandbox Code Playgroud)

但是主爱一只鸭子,我无法弄清楚如何让它重新变成一只鸭子NSDate.这是我的尝试:

public func toNSDate(wallTime: dispatch_time_t)->NSDate {
    let wallTimeAsSeconds = Double(wallTime) / Double(NSEC_PER_SEC)
    let date = NSDate(timeIntervalSince1970: wallTimeAsSeconds)
    return date
}
Run Code Online (Sandbox Code Playgroud)

结果NSDate不只是关闭,而是有点滑稽,如五百年或其他什么.正如Martin R所指出的那样,问题在于它dispatch_time_t是一个不透明的值,没有时间表示.

有谁知道如何做到这一点?

编辑:如果创建壁挂时间的过程令人困惑,这基本上是正在发生的事情:

NSDate使用a定义时间,Double小数点后的所有内容都是纳秒. …

nsdate grand-central-dispatch ios swift

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

嵌套枚举以供Swift中的switch语句访问的最佳方法?

我有一个像这样的嵌套枚举,用于描述基本的相对位置:

  enum Location {
    enum Top {
      case Left
      case Right
      case Center
    }
    enum Bottom {
      case Left
      case Right
      case Center
    }
    enum Left {
      case Top
      case Bottom
      case Center
    }
    enum Right {
      case Top
      case Bottom
      case Center
    }
    enum Center {
      case Center
    }
  }
Run Code Online (Sandbox Code Playgroud)

如果尝试switch使用它来运行一条语句,则所有枚举都不会出现在可能的情况下;如果尝试列出它们,则会出现错误:

func switchOverEnum(enumCase: Location) {
  switch enumCase {
  case .Top:
    print("hey this didn't cause an error whoops no it did")
  }
}
Run Code Online (Sandbox Code Playgroud)

错误是: Enum case 'Top' not …

enums switch-statement swift

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

无法查询OpenLibrary

我想编写一个查询OpenLibrary的RESTful API,执行以下操作:

  1. 按标题的前五个字母过滤图书清单
  2. 返回书籍的标题,作者,出版日期,描述以及封面大缩略图的链接

到目前为止,这是我能够创造的所有成功:

http://openlibrary.org/query.json?type=/type/edition&authors=/authors/OL1A&covers=&title=&publish_date=&description=
Run Code Online (Sandbox Code Playgroud)

您可以剪切并粘贴到浏览器中以查看结果,OpenLibrary不需要API密钥.

我的主要障碍似乎是:

  1. 我无法弄清楚如何按标题的前五个字母过滤书籍
  2. 我无法弄清楚如何将封面信息转换为实际缩略图的链接

有帮助吗?

api json restful-architecture

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

方法定义是否可以指定参数必须是常量?

所以,我想做的事情如下:

+ (void) replace_text_with: (NSString *) const predefined_text_style;
Run Code Online (Sandbox Code Playgroud)

我在其他地方的Constants.h和Constants.m文件中使用常量字符串定义了一些文本样式.

我想要求传递的参数predefined_text_style是其中一个常量,如果不可能将其专门限制为那些常量,至少要求它是某种常量.这可能吗?

methods constants objective-c

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

如何在Swift中准确安排iOS通话?

这个问题有一些版本,其中OP说的是"如何在下午5点在我的应用程序中触发方法调用?"

然后人们回答"你怎么知道你的应用程序将在下午5点开放"?这成为另一个问题,原始问题就消失了.

那么请避免这种情况吗?

我只想说我想在5:25:28:50用户打开应用时正好在下午5:25和30秒发出方法调用.

如果不清楚,我的意思是我希望我可以使用的绝对时间是否我的用户在5:25:26:35,5:25:20:13或5:29:49:99打开应用程序.

在SO周围阅读,似乎共识(以及Apple文档推荐)是使用某种形式的mach_absolute_time和dispatch_somethingOrOther.我找不到任何真实的具体例子.

我发现的最接近的是http://www.manpagez.com/man/3/dispatch_walltime/,它给出了这个例子:

 Create a milestone on Tuesday, January 19, 2038:

       struct timespec ts;
       ts.tv_sec = 0x7FFFFFFF;
       ts.tv_nsec = 0;
       milestone = dispatch_walltime(&ts, 0);
Run Code Online (Sandbox Code Playgroud)

我就像"尤里卡!" 直到我意识到a)我不知道如何进行将2038年1月19日变为0x7FFFFFFF的十六进制转换,b)我不明白timespec结构是如何构造的,以及我如何将小时和分钟添加到其中,以及c)milestone = dispatch_walltime(&ts, 0)在Swift中抛出错误.

有人可以帮忙吗?如果可能,使用5:25 pm和30秒的具体示例?

scheduler ios game-center

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

当我尝试使用decimalNumberByMultiplyingBy时,为什么NSDecimalNumber崩溃:?

我正在尝试从用户默认值中检索一个数字并将其相乘.这是我的代码:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSDecimalNumber *current = [prefs  objectForKey:@"account"];
NSDecimalNumber *multiplier = [NSDecimalNumber decimalNumberWithString:@"1.15"];
NSDecimalNumber *floo = [current decimalNumberByMultiplyingBy: multiplier];
Run Code Online (Sandbox Code Playgroud)

一旦碰到这floo条线,它就会给我一个非常可怕的崩溃.巨大的错误gobbledygook开始于:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFNumber decimalNumberByMultiplyingBy:]: unrecognized selector 
sent to instance 0x8c7b1e0'
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,但我的天啊!发生了什么?

objective-c nsnumber

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

文本没有出现在swift中的UIButton上

对此我的头撞了一下.应该这么简单.

在里面的操场上跑步 MyClass:

func configureButton(){
    let btn: UIButton = UIButton(frame: CGRectMake(5, 75, 90, 20))
    btn.backgroundColor = UIColor.greenColor()
    btn.addTarget(self,
                  action: #selector(MyClass.buttonTapped),
                  forControlEvents: UIControlEvents.TouchUpInside)
    addSubview(btn)
    btn.setTitleColor(UIColor.blackColor(), forState: .Normal)
    btn.titleLabel?.font = UIFont(name: "Helvetica", size: 40)
    btn.titleLabel?.text = "tap me"
  }
Run Code Online (Sandbox Code Playgroud)

该按钮显示绿色,按下时可以工作,但不显示文本.

uibutton ios swift

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

如何设置字节中的位?

我需要存储一系列任意长度的1和0.

我本来打算使用整数,但后来我发现我真正需要的只是一个比特流.

NSMutableData似乎就是这样.除了所有我看到有人在谈论的是如何在其上设置字节,或在其中存储jpegs或字符串.我需要比这更精细.

给定一系列的1和0,例如:110010101011110110,如何将其变为NSData对象 - 如何将其取出?

NSData的appendBytes:length:和mutableBytes都在字节级别,我需要从低位开始.当字节本身由1和0的集合组成时,将那些1和0存储为字节是没有意义的.我找不到任何告诉我如何设置位的麻烦.

这是一些虚假代码:

NSString *sequence = @"01001010000010"; //(or int sequence, or whatever)
for (...){//iterate through whatever it is--this isn't what I need help with
     if ([sequence intOrCharOrWhateverAtIndex: index] == 0) {
          //do something to set a bit -- this is what I need help with
     } else {
          //set the bit the other way -- again, this is what I need help with 
     }
}
NSData *data = [NSData something]; //wrap it up and save …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdata

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