<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[存档]]></title><description><![CDATA[纯属娱乐]]></description><link>https://blog.youkuaiyun.com/qs_csu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qs_csu]]></copyright><item><title><![CDATA[【Mac】获取NSString字符串高度-限定最大宽度]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/82663320</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/82663320</guid><author>qs_csu</author><pubDate>Wed, 12 Sep 2018 16:21:19 +0800</pubDate><description><![CDATA[1. 计算NSAttributedString的字符串高度


- (NSSize)sizeForWidth:(float)width height:(float)height {
    NSSize answer = NSZeroSize ;
    if ([self length] &amp;gt; 0) {
        NSSize size = NSMakeSize(width, heig...]]></description><category></category></item><item><title><![CDATA[【c++】typedef的用法]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/81667465</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/81667465</guid><author>qs_csu</author><pubDate>Tue, 14 Aug 2018 15:12:17 +0800</pubDate><description><![CDATA[常看到代码：


typedef int				(*InitializeProc)(void* component);

typedef用来声明一个别名，typedef后面的语法，是一个声明;

上述语句就是申明一个返回值为int，入参为void*的函数，且该函数别名为InitializeProc；

如此申明之后，产生一个函数指针的别名，用法为：
 


InitializeProc initi...]]></description><category></category></item><item><title><![CDATA[【Mac】NSWindow 添加child window，如何居中]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/81540873</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/81540873</guid><author>qs_csu</author><pubDate>Thu, 09 Aug 2018 17:30:28 +0800</pubDate><description><![CDATA[父窗口添加子窗口，常常会出现窗口不能居中显示，即使调用接口：


- (void)center;

仍然会存在垂直不居中的问题，那应该如何处理呢？

从文档中看：

The window is placed exactly in the center horizontally and somewhat above center vertically. Such a placement carrie...]]></description><category></category></item><item><title><![CDATA[【Mac】关于property的各个修饰符]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/81504583</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/81504583</guid><author>qs_csu</author><pubDate>Wed, 08 Aug 2018 11:14:29 +0800</pubDate><description><![CDATA[引用：https://blog.youkuaiyun.com/shenzhonglaoxu/article/details/47807081

 

1、atomic 和 nonatomic

atomic是默认的属性，表示对对象的操作属于原子操作，主要是在多线程的环境下，提供多线程访问的安全。我们知道在多线程的下对对象的访问都需要先上锁访问后再解锁，保证不会同时有几个操作针对同一个对象。如果编程中不涉及到多...]]></description><category></category></item><item><title><![CDATA[【Mac】Detecting File Dragging in Cocoa]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/80734472</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/80734472</guid><author>qs_csu</author><pubDate>Tue, 19 Jun 2018 15:24:25 +0800</pubDate><description><![CDATA[
// properties for preventing consistently calling
var mouseDidDragged = false
var shouldCallForMouseDrag = true
// a system-wide AXUIElement
let systemWideElement = AXUIElementCreateSystemWide()

// ...]]></description><category></category></item><item><title><![CDATA[【Mac】判断app是否已经安装]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/80075262</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/80075262</guid><author>qs_csu</author><pubDate>Wed, 25 Apr 2018 10:19:35 +0800</pubDate><description><![CDATA[1. LSFindApplicationForInfoBOOL isDriveInstalled = NO;
    CFURLRef appURL = NULL;
    OSStatus result = LSFindApplicationForInfo (kLSUnknownCreator,
                                                CF...]]></description><category></category></item><item><title><![CDATA[【Mac】Mac OS 捕获异常并打印]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/79658793</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/79658793</guid><author>qs_csu</author><pubDate>Thu, 22 Mar 2018 19:46:42 +0800</pubDate><description><![CDATA[1. 添加库文件

ExceptionHandling.framework

2. 在 applicationDidFinishLaunching

添加

 

    //add the excepiton catch

    [[NSExceptionHandler defaultExceptionHandler] setExceptionHandlingMask:NSLogAndHand...]]></description><category></category></item><item><title><![CDATA[【Mac】MacOS: shell script from application]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/79290383</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/79290383</guid><author>qs_csu</author><pubDate>Thu, 08 Feb 2018 15:37:53 +0800</pubDate><description><![CDATA[启动一个脚本

 


NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@&quot;/path/to/script/sh&quot;];
[task setArguments:[NSArray arrayWithObjects:@&quot;yourScript.sh&quot;, nil]];
[task setStandardOutput:[NSPipe pipe...]]></description><category></category></item><item><title><![CDATA[【Mac】Uninstall App]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/79290097</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/79290097</guid><author>qs_csu</author><pubDate>Thu, 08 Feb 2018 15:22:27 +0800</pubDate><description><![CDATA[删除app的缓存，同时把app移到trash

 


-(void)clearMemoryCache {
    NSString* rootPath = @&quot;&quot;//Cache path;
    NSError* error = nil;
    NSURL* trashUrl = nil;



//    BOOL succ = [[NSFileManager defaultManager...]]></description><category></category></item><item><title><![CDATA[【Mac】获取app相关的信息]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/79279835</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/79279835</guid><author>qs_csu</author><pubDate>Wed, 07 Feb 2018 14:35:55 +0800</pubDate><description><![CDATA[获取文件相关信息，创建时间，修改时间等；

 


-(NSString*)bundleCreateDate {
    NSBundle* mainBundle = [NSBundle mainBundle];
    NSString* bPath = mainBundle.bundlePath;
    NSError* error = nil;
    NSDictionary* file...]]></description><category></category></item><item><title><![CDATA[【Mac】NSTextField And AutoLayout: Autogrow height -> Programmatically]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/72829892</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/72829892</guid><author>qs_csu</author><pubDate>Thu, 01 Jun 2017 11:51:18 +0800</pubDate><description><![CDATA[【solution1】

Hence, a custom subclass of NSTextField can override this method to return a better value, such as the one provided by the cell's cellSizeForBounds: method:

 


- (NSSize) intrinsicConte...]]></description><category></category></item><item><title><![CDATA[[Python源码解析]机器学习-决策树]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/71075996</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/71075996</guid><author>qs_csu</author><pubDate>Mon, 01 May 2017 23:32:30 +0800</pubDate><description><![CDATA[在学习机器学习的源码，记录下对该代码的理解。
1.1 计算数据集的熵
待分析的数据集列表如下，首先根据表3-1构建数据集。


源码如下：


def createDataSet():
    dataSet = [[1, 1, 'yes'], #index=0,就是“不浮出水面是否可以生存”，index=1，就是“是否有脚蹼”，最后一个是"是否鱼类"
              ]]></description><category></category></item><item><title><![CDATA[OC代码规范总结]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/53899236</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/53899236</guid><author>qs_csu</author><pubDate>Tue, 27 Dec 2016 21:20:20 +0800</pubDate><description><![CDATA[https://github.com/Tim9Liu9/TimLiu-iOS/blob/master/OC%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83%E6%80%BB%E7%BB%93.md

# Objective-C-Coding-Guidelines-In-Chinese
Objective-C编码规范，内容来自苹果、谷歌的文档翻译，[『博爱』](http]]></description><category></category></item><item><title><![CDATA[C++ String 操作集合]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/53840295</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/53840295</guid><author>qs_csu</author><pubDate>Fri, 23 Dec 2016 15:15:10 +0800</pubDate><description><![CDATA[stirng 字符串拼接：

std::stringstream streamTmp;
streamTmp << "test test test test ....";
//allMutedUserNodeId 为 std::vector
std::vector::iterator iter = allMutedUserNodeId.begin();
while(iter != allMute]]></description><category></category></item><item><title><![CDATA[实现将NSImage保持指定像素的拉伸]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/53817526</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/53817526</guid><author>qs_csu</author><pubDate>Thu, 22 Dec 2016 17:31:41 +0800</pubDate><description><![CDATA[转自：http://www.tanhao.me/pieces/1408.html/


在UIKit中的UIImage有以下两个方法可以实现对图片的部分拉伸：- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight
- (UIImage ]]></description><category></category></item><item><title><![CDATA[如何实现Avatar Image]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/53817391</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/53817391</guid><author>qs_csu</author><pubDate>Thu, 22 Dec 2016 17:27:34 +0800</pubDate><description><![CDATA[Avatar在项目中用到的越来越多，我们应该如何去实现呢？
效果图1：

效果图2：



先从效果图1开始吧：
方法1：创建一个NSImage，然后把图像绘制在圆圈里面

/ 根据我们ImageView的大小创建一个NSImage来保存绘制后的图像
NSImage *circleImage = [[NSImage alloc] initWithSize:self.imageV]]></description><category></category></item><item><title><![CDATA[iOS-Core-Animation-Advanced-Techniques-(二)寄宿图]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/53671004</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/53671004</guid><author>qs_csu</author><pubDate>Thu, 15 Dec 2016 15:29:53 +0800</pubDate><description><![CDATA[文章转自：iOS-Core-Animation-Advanced-Techniques


寄宿图

图片胜过千言万语，界面抵得上千图片 ——Ben Shneiderman

我们在第一章『图层树』中介绍了CALayer类并创建了一个简单的有蓝色背景的图层。背景颜色还好啦，但是如果它仅仅是展现了一个单调的颜色未免也太无聊了。事实上CALayer类能够包含一张你喜欢的图片，这一章节我们]]></description><category></category></item><item><title><![CDATA[iOS-Core-Animation-Advanced-Techniques-(一)图层树]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/53669913</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/53669913</guid><author>qs_csu</author><pubDate>Thu, 15 Dec 2016 14:24:17 +0800</pubDate><description><![CDATA[图层的树状结构

巨妖有图层，洋葱也有图层，你有吗？我们都有图层 -- 史莱克

Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的，但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来，所以做动画这只是Core Animation特性的冰山一角。
Core Animation是一个复合引擎，它的职责就是尽可能快地组合屏幕上不同的]]></description><category></category></item><item><title><![CDATA[Mac 性能优化Instruments之Core Animation]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/53669483</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/53669483</guid><author>qs_csu</author><pubDate>Thu, 15 Dec 2016 13:51:13 +0800</pubDate><description><![CDATA[Core Animation工具用来监测Core Animation性能。它给我们提供了周期性的FPS，并且考虑到了发生在程序之外的动画。




使用可视化调试选项的Core Animation工具
Core Animation工具也提供了一系列复选框选项来帮助调试渲染瓶颈：


Color Blended Layers - 这个选项基于渲染程度对屏幕中的混合区域进行绿到红的高]]></description><category></category></item><item><title><![CDATA[在 Mac Webview 中 Objective-c 与 JS 交互]]></title><link>https://blog.youkuaiyun.com/qs_csu/article/details/53609873</link><guid>https://blog.youkuaiyun.com/qs_csu/article/details/53609873</guid><author>qs_csu</author><pubDate>Tue, 13 Dec 2016 15:32:48 +0800</pubDate><description><![CDATA[http://blog.eqoe.cn/posts/mac-webview-js-oc.html


本文为您图文演示如何在 OC 中注册或运行 JS 函数，以实现网页与程序的交互。
1. 首先我们创建一个 XCode 项目;
2. 添加WebView 到ViewController中，

3. 在ViewController.h中申明webview成员变量，并建立关联。
@int]]></description><category></category></item></channel></rss>